JavaScript Object.defineProperty

示例

5

它允许我们使用属性描述符在现有对象中定义属性。

var obj = { };

Object.defineProperty(obj, 'foo', { value: 'foo' });

console.log(obj.foo);

控制台输出

Object.defineProperty 可以使用以下选项来调用:

Object.defineProperty(obj, 'nameOfTheProperty', {
  value: valueOfTheProperty, 
  writable: true, // 如果为false,则该属性为只读
  configurable : true, // true表示该属性可以在以后更改
  enumerable : true // true表示可以枚举属性,例如在for..in循环中
});

Object.defineProperties 允许您一次定义多个属性。

var obj = {};
Object.defineProperties(obj, {
  property1: {
    value: true,
    writable: true
  },
  property2: {
    value: 'Hello',
    writable: false
  }      
});