>[success] # 新增 1. **getOwnPropertyDescriptors**方法用来获取一个对象的所有自身属性的描述符 ~~~ var obj = { name: 'w', age: 16, } console.log(Object.getOwnPropertyDescriptors(obj)) /** 打印结果 { name: { value: 'w', writable: true, enumerable: true, configurable: true }, age: { value: 16, writable: true, enumerable: true, configurable: true } } */ ~~~ 2. **preventExtensions**给一个对象添加新的属性会失败(在严格模式下会报错) ~~~ var obj = { name: 'w', age: 16, } Object.preventExtensions(obj) obj.zzz = 12 // 写不进去 console.log(obj) // { name: 'w', age: 16 } ~~~ 3. **seal** 密封对象,不允许配置和删除属性,实际是调用**preventExtensions**,并且将现有属性的**configurable:false** ~~~ var obj = { name: 'w', age: 16, } Object.seal(obj) obj.zzz = 12 // 写不进去 delete obj.name // 不能删除 console.log(obj) // { name: 'w', age: 16 } ~~~ 4. **freeze** 冻结对象,不允许修改现有属性,实际上是调用**seal**,并且将现有属性的**writable: false**