对象属性可枚举,表示该属性的值不可修改,可认为该属性是常量。
如何定义不可枚举的属性?
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, 无论该属性存在于实例中还是原型对象中
原文:http://blog.csdn.net/haojianfeng11/article/details/16331963