在构造函数内,都可以看作有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 //属性本身不能重写