Je voudrais rendre la structure d'un objet immuable, en empêchant ses propriétés d'être remplacées ultérieurement. Les propriétés doivent cependant être lisibles. Est-ce possible ?
Je suis sûr qu'il n'existe pas de fonctionnalités linguistiques (du type final
en Java et readonly
en C#) pour prendre en charge cette fonction, mais je me suis demandé s'il n'existait pas un autre mécanisme permettant d'obtenir le même résultat.
Je suis à la recherche de quelque chose de ce genre :
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";
};