【发布时间】:2014-06-19 13:03:01
【问题描述】:
我知道 ECMAScript5 有两种创建对象的方法。
1/ 文字表示法(默认情况下)将所有内部数据属性设置为 true(可写、可配置和可枚举。
2/ 使用 Object.create 方法(默认情况下)将所有数据描述符设置为 false。
在文字表示法中将 enumerable 设置为 false 是否有效?在 object2 上执行此操作时,Object.keys(obj2) 不应该返回一个空数组吗?
var obj1 = Object.create(null, {
'name': {value: 'first object name'},
'surename': {value: 'first object surname', enumerable: true, configurable: true}
});
var obj2 = {'x': {value: 10, enumerable: false}};
console.log(Object.keys(obj1)); // ["surename"]
console.log(Object.keys(obj2)); // ["x"]
JsFiddle link
【问题讨论】: