var myObject = {};
Object.defineProperty( myObject, "a", {
value: 2,
writable: true,
configurable: true,
enumerable: true
} );
myObject.a; // 2
-
- Writable writable 决定是否可以修改属性的值。
-
- Configurable
只要属性是可配置的,就可以使用defineProperty(..) 方法来修改属性描述符:
除了无法修改,configurable:false 还会禁止删除这个属性
- Configurable
只要属性是可配置的,就可以使用defineProperty(..) 方法来修改属性描述符:
-
- Enumerable
这里我们要介绍的最后一个属性描述符(还有两个,我们会在介绍getter 和setter 时提到)
是enumerable。
从名字就可以看出,这个描述符控制的是属性是否会出现在对象的属性枚举中,比如说 for..in 循环。如果把enumerable 设置成false,这个属性就不会出现在枚举中,虽然仍 然可以正常访问它。相对地,设置成true 就会让它出现在枚举中。
- Enumerable
这里我们要介绍的最后一个属性描述符(还有两个,我们会在介绍getter 和setter 时提到)
是enumerable。