JavaScript提供了两种方法来阻止对象被更新:Object.freeze()
和Object.seal()
但是这两个方法也有不同之处:
Object.freeze()
Object.freeze()
可以阻止从对象或数组中添加,删除,修改属性。
比如有一个user
对象
const user = {'name': '狗蛋', age: '33'}
复制代码
把这个user
对象传给Object.freeze()
,做一些添加,修改,删除的操作,会发现对象没有变化。
Object.freeze(user)
user.name = '张三'
user.age = '23'
user.sex = '不知道'
delete user.name
console.log(user)
// {'name': '狗蛋', age: '33'}
复制代码
Object.seal()
Object.seal()
可以更新对象中已有的属性,但是阻止添加何删除操作。
Object.seal(user)
user.name = '张三'
user.sex = '不知道'
delete user.age
console.log(user)
// {'name': '张三', age: '33'}
复制代码
不积硅步无以至千里
加油,?,打工人!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END