我刚刚听说过JavaScript方法freeze
和seal
,它们可用于使任何对象不可变。
这是一个简短的示例如何使用它:
var o1 = {}, o2 = {};
Object.freeze(o2);
o1["a"] = "worked";
o2["a"] = "worked";
alert(o1["a"]); //prints "worked"
alert(o2["a"]); //prints "undefined"
freeze
和之间有什么区别seal
?它们可以提高性能吗?
6
只是给任何看这个问题的人一个注释,被接受的答案实际上是错误的。@tungd的答案是正确的。
—
比约恩
另一个注意事项是,
—
比约恩2014年
Object.preventExtensions
除了Object.seal
和Object.freeze
。Object.preventExtensions
只是防止将新项目添加到对象。您可以删除,配置和更改通过禁用可扩展性的对象的属性值Object.preventExtensions
。