Object.prototype.hasOwnProperty()
hasOwnProperty()
表示对象自有属性(而不是继承来的属性)中是否具有指定的属性。
与 in
运算符不同的是,该方法不会在对象原型链中检查指定的属性。
Array
是一个 Object
,所以可以使用 hasOwnProperty()
方法来检查索引是否存在。
- 缺点:
使用 Object.create(null)
创建的对象不从 Object.prototype
继承,使得 hasOwnProperty()
不可访问。
Object.hasOwn()
功能和 Object.prototype.hasOwnProperty()
几乎一样,但更现代。
如果指定的对象自身有指定的属性,则静态方法 Object.hasOwn()
返回 true
。如果属性是继承的或者不存在,该方法返回 false
。
Object.hasOwn()
旨在取代 Object.prototype.hasOwnProperty()
。
它适用于使用 Object.create(null)
创建的对象。
- 缺点:
唯一的缺点可能就是兼容性了。