var a = {"a":"a","b":"b"}; Object.defineProperty(a,"c",{value:"c",writable:true,enumerable:false,configurable:false});console.log(a.c);//c for(i in a){ console.log(a[i]);//a,b }就像是这样,原生的那些看不到不好看,这样使用ES5中的defineProperty设置就能看到了添加一个c属性,但是设置它的enumerable=false,那么我们可以直接使用a.c访问到这个属性,但是通过for循环,想要知道a对象中的可枚举属性和方法时,就不会有c这个属性。所以,这里的c属性,就是不可枚举的。
Object.defineProperty(a,"c",{value:"c",writable:true,enumerable:false,configurable:false});console.log(a.c);//c
for(i in a){
console.log(a[i]);//a,b
}就像是这样,原生的那些看不到不好看,这样使用ES5中的defineProperty设置就能看到了添加一个c属性,但是设置它的enumerable=false,那么我们可以直接使用a.c访问到这个属性,但是通过for循环,想要知道a对象中的可枚举属性和方法时,就不会有c这个属性。所以,这里的c属性,就是不可枚举的。