Консоль выведет 'Ivan'. Метод hi вызывается через user.hi(), поэтому this внутри него указывает на объект user и this.name читает его поле name.
Какой вывод получит консоль в примере №22
Консоль выведет 'Ivan'. Метод hi вызывается через user.hi(), поэтому this внутри него указывает на объект user и this.name читает его поле name.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Укажите, какой результат будет выведен в консоль при выполнении следующего кода:
var user = {
name: "Ivan",
hi() {
console.log(this.name)
}
}
user.hi() // ?
Ответ
Консоль выведет 'Ivan'. Метод hi вызывается через user.hi(), поэтому this внутри него указывает на объект user и this.name читает его поле name.
Запись метода сокращённым синтаксисом не привязывает this навсегда, но вызов с объектом слева от точки задаёт нужный контекст. Если сохранить const fn = user.hi и вызвать fn отдельно, результат может измениться или возникнет ошибка строгого режима. Для приведённого непосредственного вызова неоднозначности нет.