从节点repl:
foo = { bar: 'baz'};
console.log (Object.getOwnPropertyDescriptor(foo, 'bar'))
Run Code Online (Sandbox Code Playgroud)
退货价值:
{ value: 'baz',
writable: true,
enumerable: true,
configurable: true }
Run Code Online (Sandbox Code Playgroud)
如何更改可写入的可枚举,并可配置为false?这些价值被称为什么?它们是ES5.1的一部分吗?还有更多的repl没有输出?
小智 15
"你如何更改可写入的可枚举,并可配置为false?"
Object.defineProperty(foo, 'baz', {
enumerable:false,
writable:false,
configurable:false
});
Run Code Online (Sandbox Code Playgroud)
还有Object.defineProperties,这是相同的,除了可以设置多个属性,并且Object.create,这让我们创建一个新的对象,并设置其原型对象,而其描述.
"这些价值被称为什么?"
它们是属性描述符.
"它们是ES5.1的一部分吗?"
是的,ES5.
" 还有更多的repl没有输出?"
更多什么,属性描述符?没有.
斜视:我认为你的答案中有一点打字错误。
你的代码:
Object.defineProperty(foo, 'baz', {
enumerable:false,
writable:false,
configurable:false
});
Run Code Online (Sandbox Code Playgroud)
但第二个参数必须是属性的名称而不是值,因此正确的代码是:
Object.defineProperty(foo, 'bar', {
enumerable:false,
writable:false,
configurable:false
});
Run Code Online (Sandbox Code Playgroud)