Я хотел бы сделать структуру объекта неизменной, не позволяя впоследствии ее свойствам заменяться. Однако свойства должны быть доступны для чтения. Возможно ли это?
Я уверен, что в нем нет языковых возможностей (в строках final
в Java и readonly
на С#), но задавался вопросом, может ли быть другой механизм для достижения того же результата?
Я ищу что-то в этих строках:
var o = {
a: "a",
f: function () {
return "b";
}
};
var p = o.a; // OK
o.a = "b"; // Error
var q = o.f(); // OK
o.f = function () { // Error
return "c";
};