Только ES5 (ECMAScript Edition 5) будет поддерживать геттеры и сеттеры. К сожалению, ES5 еще не полностью реализован ни одним браузером, только частично.
Текущие реализации Javascript не поддерживают геттеры и сеттеры, ни стандартным, ни кросс-браузерным способом. Извините, вам придется написать явные функции getA и setA.
Вот рекомендуемый способ в ES3 (который работает во всех современных браузерах, даже в IE6) с использованием замыканий:
var abc = (function () {
var a = NaN;
return {
getA: function () {
return a;
},
setA: function (value) {
a = value;
}
};
})();
Это даст вам объект в переменной abc
с двумя функциями: getA()
и setA(value)
. Единственный способ добраться до a
- это эти два метода.
abc.getA()
// NaN
abc.setA(25);
abc.getA();
// 25
Сама переменная a
скрыта от внешнего мира, поскольку она присутствует только в рамках анонимной функции, используемой для создания объекта.