Поскольку спецификации ECMA-262 Javascript приобрели метод Object.freeze(), который позволяет создавать объекты, свойства которых не могут быть изменены, добавлены или удалены.
var obj = {'a':1, 'b:2'};
Object.freeze(obj);
Object.isFrozen(obj); // returns true
obj.a = 10; // new assignment has no affect
obj.a; // returns 1
Пока все хорошо.
Мне интересно, должен ли freeze() также работать с массивами.
var arr = [1, 2];
Object.freeze(arr);
Object.isFrozen(arr); // returns true
arr[0] = 10;
arr; // returns [10, 2] ... ouch!
Возможно, я ошибаюсь, но у меня создалось впечатление, что массив наследуется от Object.
typeof obj // "object"
typeof arr // "object"
Любые идеи, указатели, просветы будут высоко оценены.