Object.defineProperty用法
语法
Object.defineProperty(obj, prop, descriptor)
参数含义
value:属性对应的值
writable:属性的值是否可以被重写
enumerable:属性是否可以被枚举(for…in 或者Object.keys())
configurable:是否可以删除目标属性或是否可以再次修改属性的特性(writable,configurable,enumerable)
get/set:
Object.preventExtensions()
阻止对象扩展,让一个对象永远不能再添加新的属性
Object.isExtensible()
判断一个对象是否可扩展,返回true/false
Object.seal()
不能添加新的属性
不能删除已有属性
不能修改已有属性的enumerable,configurable,writable,但可以修改已有属性的值
返回被密封后的对象
Object.isSealed()
判断是否被密封
Object.freeze()
在seal的基础上不能修改属性的值
Object.isFrozen()
判断一个对象是否被冻结