《javascript精粹》----對象(筆記,我的向)

對象字面量

//定義一個空對象,這裏的空指的是其自身屬性爲空,dog對象繼承了Object.prototype的屬性和方法
var dog={}

//添加屬性/方法
dog.name="Beijing"
dog.getName= function(){
    return this.name
}
//檢索
dog["name"] //Beijing
dog.name //Beijing
//徹底刪除屬性/方法
delete dog.name

引用

對象經過引用來傳遞,他們永遠不會被複制this

var Bob = dog
Bob.footers = 4
var f = dog.footers 
// 由於Bob 和f指向同一個對象,因此結果f 的結果爲4

var a={}, b={}, c={}
//a,b,c每一個都引用不一樣的空對象
a = b =c ={}
//a,b,c引用同一個空對象

原型

每一個對象都鏈接到一個原型,並能夠從中繼承屬性,全部字面量建立的對象都鏈接到Object.prototypeprototype

  • 反射

咱們常常用typeof檢查對象的屬性,但typeof對原型鏈的對像也會進行檢查,能夠使用hasOwnProperty,他只檢測對象的自有屬性,不會檢查原型鏈上的屬性code

man.hasOwnProperty('legs') //true
man.hasOwnProperty('constructor') //false
  • 刪除

delete運算符能夠刪除對象的自身屬性,而不會對原型鏈上的對象有影響,有時delete對象上的屬性會致使原型鏈上的屬性溢出來對象

相關文章
相關標籤/搜索