js中Object.defineProperty详解
首先需要说明的是: 通过Object.defineProperty()方法来定义对象的属性类似以下这种, 默认情况下configurable, enumerable, writable的默认值都是false
var Person={}
Object.defineProperty(Person, "name", {
value:null,
})
注意:writable值只影响value是否可写, 当使用如下方法定义变量时,writable值是无效的
Object.defineProperty(Person, "name", {
get() {},
set(val) {},
})
但是configurable, enumerable 两个变量对以上两种定义方式都有效果。
可以使用这种方式来测试:var descriptor__name = Object.getOwnPropertyDescriptor(Person,'name');
console.log(descriptor__name )