Я согласен с ответом и хотел бы отметить, что некоторые JavaScript-фреймворки, такие как bob.js , поддерживают такие встроенные механизмы:
var obj = { };
//declare read-only property.
bob.prop.namedProp(obj, 'name', 'Bob', true);
//declare read-write property.
bob.prop.namedProp(obj, 'age', 1);
//get values of properties.
console.log(bob.string.formatString('{0} is {1} years old.', obj.get_name(), obj.get_age()));
//set value of read-write property.
obj.set_age(2);
console.log(bob.string.formatString('Now {0} is {1} years old.', obj.get_name(), obj.get_age()));
//cannot set read-only property of obj. Next line would throw an error.
// obj.set_name('Rob');
//Output:
//========
// Bob is 1 years old.
// Now Bob is 2 years old.
Однако, если у вас есть особые потребности в отношении свойства, такие как особые потребности реализации метода доступа get, то лучше определить функцию, которая получает значение по мере необходимости.
-
Тенгиз