Привет!
Как работают сеттер и геттер в JavaScript?
var obj = {
name: 'Hobbit',
initialAge: 24,
get age() {
return this._age;
},
set age(val) {
return this._age = val;
}
};
obj.age = 30;
obj.age // возвращает значение _age, но его нет в объекте
Откуда берется свойство _age в объекте, если оно не инициализировано?
Не могу понять специфику работы методов get и set или это операторы? Запарился, объясните плиз
bagerman: >>>get и set это операторы или методы?
Это аксессоры.
>>>Но свойства _age нет в объекте
Так ты это свойство при обращении к аксессору "set" создаешь, а получаешь значение свойства при обращении к аксессору "get".
bagerman: Там на самом деле всё не так сложно как кажется, а то что ты пытаешься понять как это работает это только плюс.
Ещё, когда ты обращаешься не к "age", а к "_age", ты обращаешься опять же к аксессору, потому что аксессор объявлен в объекте, так как мы знаем что, при обращении к несуществующему свойству объекта нам интерпретатор возвращает специальное значение "undefined".