В частности, как это работает в отношении этого примера Codecadamy?
let person = {
_name: 'Lu Xun',
_age: 137,
set age(ageIn) {
if (typeof ageIn === 'number') {
this._age = ageIn;
}
else {
console.info('Invalid input');
return 'Invalid input';
}
}
};
Для меня не имеет смысла, почему они помещают ageIn в age (), что это делает?
Спасибо!
Так это как let age = ageIn? Он "устанавливает" ageIn = возраст?
Нет, совсем нет. Это функция, которая вызывается с тем, что вы пытались установить для age в качестве аргумента.
Хорошо, значит, он используется как то же значение, что и _age, поскольку _age не нужно редактировать?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Установщик - это функция, которая выполняется всякий раз, когда вы пытаетесь изменить параметр.
set age(ageIn)
В приведенной выше функции установки они пытаются определить, является ли параметр, который они пытаются установить, числом, прежде чем присвоить его свойству _age объекта. Этот метод вызывается только в том случае, если пользователь устанавливает значение person.age = 140, и он обновит person._age как 140.
Однако, если пользователь пытается напрямую обновить свойство _age, он не будет выполнять этот метод и напрямую обновит человека.
Это полезный ресурс, чтобы получить немного больше информации о сеттерах https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set
Надеюсь это поможет. Удачного кодирования
Это устанавливаемое значение.
person.age = 50будет похож наperson.age(50), если вы удалите ключевое словоset.