Ошибка срабатывания Геттера в дескрипторе

Ранее я уже задавал подобный вопрос, но его закрыли. Мне завуалированно сказали, что ты дурачек и вопрос мы твой закроем. Как я понял, проблема была в отсутствии свойства куда можно было записать данные из Сеттера. Я добавил это самое свойство, но проблема никуда не ушла, геттер не хочет работать, то есть выводить сообщение Domik, 28 и значение из Сеттера

let obj = {};  // Пустой объект
         
Object.defineProperties(obj,{
         
name:{value:'Domik', writable:true,},  // Первое свойство
age:{value: 28, writable:true, },      // Второе свойство
setName:{value: '', writable:true, },  // Третье свойство
         
getterAndSetter:{        // Четвертое свойство

set(setValue){           // Сеттер, полёт  нормальный =)
this.setName = setValue; // Записать результат из prompt в третье свойство
}, 
         
get(){                   // Геттер не хочет работать, почему?
         
alert(`
Текущее имя: ${this.name}, 
Возраст: ${this.age}, 
Ваше имя: ${this.setName}`);   // Должно выводить Domik, 28 и значение из setName
},  
         
enumerable:true,
configurable:true,
},
         
})
         
obj.getterAndSetter =  prompt('Ваше имя?'); // Аргумент Сеттера setValue = prompt


Ответы (1 шт):

Автор решения: Alexey Ten

Примерно так работает геттер:

let obj = {};  // Пустой объект
             
Object.defineProperties(obj, {
    name: { value: 'Domik', writable: true },  // Первое свойство
    age: { value: 28, writable: true },      // Второе свойство
    setName: { value: '', writable: true },  // Третье свойство
             
    getterAndSetter: {        // Четвертое свойство
        set(setValue) {           // Сеттер, полёт  нормальный =)
            this.setName = setValue; // Записать результат из prompt в третье свойство
        },
             
        get() {                   // Геттер не хочет работать, почему?
            return `Текущее имя: ${this.name}, 
Возраст: ${this.age}, 
Ваше имя: ${this.setName}`;   // Должно выводить Domik, 28 и значение из setName
        },
        enumerable: true,
        configurable: true,
    },
});
             
obj.getterAndSetter = 'Моё имя'; // Используем сеттер
alert(obj.getterAndSetter); // Используем геттер

→ Ссылка