Object.prototype.hasOwnProperty() 和 in

hasOwnProperty() 所有繼承了 Object 的對象都會繼承到 hasOwnProperty 方法。這個方法可以用來檢測一個對象是否含有特定的自身屬性;和 in 運算符不同,該方法會忽略掉那些從原型鏈上繼承到的屬性。
 

in操作符:檢測指定對象(右邊)原型鏈上是否有對應的屬性值。 

hasOwnProperty方法:檢測指定對象自身上是否有對應的屬性值。

兩者的區別在於in會查找原型鏈,而hasOwnProperty不會

hasOwnProperty()語法

obj.hasOwnProperty(prop)

參數:prop要檢測的屬性的 String 字符串形式表示的名稱,或者 Symbol

返回值:用來判斷某個對象是否含有指定的屬性的布爾值 Boolean此方法不會檢查對象的原型鏈中是否存在該屬性,該屬性只有是對象本身的一個成員纔會返回true

示例


Object.prototype.bar = {bar:'object prototype'}; 
var foo = {
    goo: undefined
};
console.log('bar' in foo);// expected output: true(in會查找原型鏈)
console.log(foo.hasOwnProperty('bar'));// expected output: false
console.log(foo.hasOwnProperty('goo'));// expected output: true

 

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