JS對象

對象

JS中的簡單對象:數字字符串布爾值null值undefined值

對象和Json

var flight = {
    airline:"Oceanic",
    "number":815,
    first_name: "Lisa", //此處first_name符合字符串規範,可以不用" "
    "last-name":"Smith"//此處 - 不屬於JS字符串規範,所以必須使用引號
}

以上是一個JS對象。我想那它與Json對象做一個比較:

{
    "airline":"Oceanic",
    "number":"815",
    "first_name": "Lisa",
    "last-name":"Smith"
}

Json對象需要鍵-值均要用" "括起來。而對於對象,如果鍵符合JS字符串標準,則可以不使用" "括起來;但是對於不符合規範的鍵來說,則必須使用" "來括住。

訪問

由於對於JS合法標識符的區別,也造成了JS對象的不同訪問。以上面的flight對象爲例,如果要訪問first_name屬性,則:

flight["first_name"]
flight.first_name

均是正確的。而對於last-name的訪問,由於-不是JS合法標識符,所以只能被[ ]訪問。

flight["last-name"]

原型

要與new關鍵字配合使用,原型鏈向上繼承。原型關係是一種動態的關係。如果我們添加一個新的屬性到原型中,該屬性會立即對所有基於該原型創建的對象可見。

父變字可見,子無向父尋。

反射

typeof檢測屬性,’number’,’string’,’object’,’undefined’,’function’等屬性。

hasOwnProperty方法,如果對象擁有獨有的屬性,它將返回true。hasOwnProperty方法不會檢查原型鏈。

刪除

delete運算符可以用來刪除對象的屬性,如果對象包含該屬性,則會被刪除,但是它不會觸及原型鏈中的任何對象。同時它也不能刪除function,刪除對象的屬性可能會讓原型鏈中的屬性透視出來。

減少全局變量的污染

使用唯一的全局變量對象,或者使用閉包操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章