Object.defineProperty

41 阅读1分钟

对象里目前存在的属性描述符有两种主要形式:数据描述符和存取描述。

关键属性值

configurable 表示可配置的,表示属性可以被操作,默认情况下,所有直接定义在对象上的属性的这个特性都是 true。`

enumerable 表示可被遍历的,默认情况下,所有直接定义在对象上的属性的这个特 性都是true。

writable 表示可被赋值修改的

value 表示对应的值,默认undefined

let objVal = {};
let name = ''
Object.defineProperty(objVal, "title", {
  configurable: true,
  enumerable: true,
  get: function (val) {
      return val
  },
  set: function (val) {
    name = val
  },
});
objVal.title = '1' // name为1
objVal.title // undefined