四十八.对象的成员检测

85 阅读1分钟

instanceof

instanceof:判断该对象是否为另一个对象的实例,即判断一个对象是否为另一个函数创建。返回结果为true,表示该对象能够使用构造函数创建的对象的功能。

image.png

image.png

image.png

image.png

isPrototypeOf()

isPrototypeOf:判断一个对象是否为一个实例的原型,即判断一个对象是否为另一个对象的原型链上的对象。

image.png

image.png

hasOwnProperty()

hasOwnProperty:判断对象是否有某个特定的成员,必须用字符串指定该成员名。(是对象的成员,而不是对象原型的成员)

image.png

image.png

life是原型对象的成员返回false,name是自己的成员返回true。

propertyIsEnumerable()

propertyIsEnumerable() 方法用来检测一个属性是否可枚举,如果是就返回 true,否则就返回 false。定义在 Object.prototype 对象之上,所有 Object 的实例对象都会继承 propertyIsEnumerable() 方法

如果一个属性同时满足以下两个条件,我们就称它为可枚举属性:

1.该属性是对象的自有属性。也就是对象本身就包含该属性,而不是从原型链继承而来。使用 hasOwnProperty() 方法可以检测自有属性。

2.该属性是自定义的,而不是内置的,可以通过 for in 循环列举出来,for in 循环可以遍历它的所有自有属性、原型属性。

image.png

image.png

即可枚举成员就是对象的自定义成员。