属性描述符

71 阅读1分钟

在构造函数内,都可以看作有getter和setter,即两个函数

```/**构造函数*/
constructor(g){
  Object.freeze(g) //冻结传入的g值
  /**设置属性 */
  Object.defineProperty(对象,"对象里面的某个属性",{
      get:function(){
       //读值器 getter
       }
      set:function(val){
        //可以操作赋值 如果设置了值不可以改,代码走这里可以在这里直接抛出错误
        //设置器 setter
       }
  })
  Object.seal(this) //密封 ,这里不能阻止原型密封
  Object.seal(xx.prototype) //密封原型
})
}

/**属性*/
Object.getOwnPropertyDescriptor(对象,"对象里面的某个属性")
//可以得到对象的哪些属性
value:** //可以设置值
writeable:boolean //这个属性是否可重写
enumerable:boolean //是否可便利
cconfigurable:boolean //属性本身不能重写