Почему при работе сеттера не происходит создание нового св-ва?
В первом случае создается объект, затем создается его внутреннее св-во.
obj = {};
obj.sister = 'Fiona';
console.log(obj.sister); //Fiona
Второй пример практически такой же самый. Единственное отличие - использование сеттера для создаваемого св-ва.
let obj = {
surname: 'Li',
set name(val) {
this.fullName = val + ' ' + this.surname;
}
};
obj.name = 'Eva'; //срабатывает метод set
console.log(obj.name); //undefined
Почему так? Почему не происходит создание св-ва?
Ответы (1 шт):
Автор решения: Alexander Lonberg
→ Ссылка
let obj = {
surname: 'Li',
set name(val) {
this.fullName = val + ' ' + this.surname;
},
get name() {
return 'Потому что надо добавить getter'
}
};
obj.name = 'Eva'; //срабатывает метод set
console.log(obj.name)
На этой странице можно найти, что совместное использование value и setter/getter является ошибкой. Поэтому либо используем как в первом случае(примера), либо setter/getter.
Часто используется один getter, когда значение может быть вычисляемым и/или оно не может(не должно) быть "записываемым".