javascript对象的属性标签默认的不是false吗?

1.

let d1 = Object.getOwnPropertyDescriptor({name: "hello"}, 'name');console.info(d1);

为什么打印出来是

{ value: 'hello',  writable: true,  enumerable: true,  configurable: true }

而通过Object.defineProperties()定义的属性,这几个默认就是false


慕标琳琳
浏览 747回答 1
1回答

缥缈止盈

这个问题在MDN上 defineProperty 有解释,摘录如下:该方法(指的是defineProperty)允许精确添加或修改对象的属性。这个方法允许修改默认的额外选项(或配置)。默认情况下,使用 Object.defineProperty() 添加的属性值是不可修改的。(即默认是false)通过赋值操作添加的普通属性是可枚举的(比如本题目中使用JSON格式创建的对象,相当于是var a = {}; a.name='hello';,实际是赋值操作),能够在属性枚举期间呈现出来(for...in 或 Object.keys 方法), 这些属性的值可以被改变,也可以被删除。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript