- 可枚举属性和不可枚举属性什么意思?
在javascript中,对象的属性可以分为可枚举属性和不可枚举属性,它们的属性由enumerable值决定,可枚举属性决定了这个属性能否被for in 遍历到 - 判断是否可枚举
Object.propertyIsEnumerable()方法
propertyIsEnumerable( ) 方法返回一个布尔值,表示属性是否可以枚举
每个对象都有一个propertyIsEnumerable方法。该方法可以确定对象中的指定属性是否可以通过for…in循环枚举,但通过原型链继承的属性除外。如果对象不具有指定的属性,则此方法返回false。 - 判断语法:
obj.propertyIsEnumerable(prop),prop:表示要测试的属性名称
返回值:Boolean类型
//例一:
var obj = {}
obj.propertyIsEnumerable(‘a’) //false
//例二:
var obj = {a:1}
obj.propertyIsEnumerable(‘a’) //true
简单来说,用户定义的属性都是可枚举的,而内置对象不可枚举。
一种情况除外:当属性的原型是继承于其它对象原型时,这时用户定义的属性就是不可枚举的