object.defineporperty

6个属性,有4没2,有2没4
通过defineporperty设置属性

var Person = {}
Object.defineProperty(Person, 'name',{})
Person.name = 'rose'
console.log(Object.getOwnPropertyDescriptor(Person, 'name'))
// {
//     value: undefined,
//     writable: false,
//     enumerable: false,
//     configurable: false,
// }
console.log(Person.name) // undefined

通过.设置属性

var Person = {
  a : 1
}
Object.defineProperty(Person, 'a',{})
console.log(Object.getOwnPropertyDescriptor(Person, 'a'))
// {
//     value: 1,
//     writable: true,
//     enumerable: true,
//     configurable: true,

// }

通常用法

var Person = {a : 1}
  _val = 0
  Object.defineProperty(Person, 'a',{
    get () {
      return _val
    },
    set (newval) {
      _val = newval
    }

  })
  Person.a = 10
  console.log(Person.a) // 10
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。