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