Object.getOwnPropertyDescriptor(),返回对象对应属性的 属性配置;
let obj = {
name: '小明'
}
let mes = Object.getOwnPropertyDescriptor(obj, 'name')
console.log(mes)
/* configurable: true
enumerable: true
value: "小明"
writable: true
__proto__: Object */
configurable:是否可以修改属性配置 和删除属性;
enumerable:是否可以遍历,如果为false不能被遍历到,使用Object.keys()也不能获取到包含改属性的可遍历对象
writable:是否可写,是否可已更改属性的值
value:属性的值。
MDN
Object.preventExtensions()方法让一个对象变的不可扩展,也就是永远不能再添加新的属性。仅阻止添加自身的属性。但其对象类型的原型依然可以添加新的属性。不可扩展对象的原型是不可变的
*Object.seal()方法封闭一个对象,阻止添加新属性并将所有现有属性标记为不可配置(属性不能删除)。当前属性的值只要原来是可写的就可以改变。*不会影响从原型链上继承的属性。但 proto ( ) 属性的值也会不能修改。