Я только что услышал о методах 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
? Могут ли они повысить производительность?
Object.preventExtensions
в дополнение к Object.seal
и Object.freeze
. Object.preventExtensions
просто предотвращает добавление новых предметов к объекту. Вы можете удалять, настраивать и изменять значения свойств объектов, у которых отключена расширяемость Object.preventExtensions
.