1. Object.freeze
Object.freeze方法是es5中新增加的一个属性描述符,用于锁定一个对象,被锁定后的对象将不可添加或删除属性,对自身已有属性也不可进行修改。
Object.freeze方法可以大大的增加性能,也可用作冻结线上的配置文件中的对象,以防有人误改。
let obj = { name: 'zhudying',sex: "男" }
Object.freeze(obj )
// 增加属性
obj.age = 18
console.log(obj) // 输出 { name: 'zhudying',sex: "男" }
console.log(obj.age) // 输出 undefined
// 删除属性
delete obj.sex
console.log(obj) // 输出 { name: 'zhudying',sex: "男" }
// 修改属性
obj.sex = "女"
console.log(obj) // 输出 { name: 'zhudying',sex: "男" }
另外,freeze冻结的是堆内存中的值,和栈中的引用无关。
let obj = { name: 'zhudying',sex: "男" }
Object.freeze(obj )
obj = 2
console.log(obj) // 输出 2
网友评论