1. 程式人生 > >JS 物件屬性"可列舉"

JS 物件屬性"可列舉"

物件屬性可列舉,表示該屬性的值不可修改,可認為該屬性是常量。

如何定義不可列舉的屬性?

var obj = {name: 'jack', age:23}

Object.defineProperty(obj, 'id', {value : '123', enumerable : false });

獲得物件例項屬性集的方法:(例項屬性指該屬性僅存在於當前物件中)

1. 

Object.keys(obj);    // 獲得物件上所有可列舉的“例項屬性”

2. 

Object.getOwnPropertyNames(obj) ;//獲得物件上所有的“例項屬性”

判斷物件是否擁有某例項屬性的方法:

obj.hasOwnProperty(‘id’); //只要該物件obj擁有屬性id, 無論id是否可列舉,都返回true

for(var i  in obj){ } // 表示訪問物件所有可列舉的屬性,包括可列舉的例項屬性和可列舉的原型物件的屬性

“name”  in obj   // 通過物件能夠訪問給定屬性名時返回true, 無論該屬性存在於例項中還是原型物件中