Добрый день, возникла трудность в понимании передачи функции в объект, когда функция использует this.
var user={
name: 'Example',
last_name: 'Hm...',
fullname: sum()
};
function sum(){
return this.name + ' ' + this.last_name;
}
console.log(user.fullname); //Window undefined
Как изменить код, чтобы обратиться не к глобальному объекту а к объекту - user? Почему вообще срабатывает этот механизм
var user={
name: 'Example',
last_name: 'Hm...',
fullname: sum
};
function sum(){
return this.name + ' ' + this.last_name;
}
console.log(user.fullname());
Как я понимаю тут: fullname: sum() вы вызываете функцию, которая как раз вне контекста объекта. А если написать fullname: sum, то будете ссылаться на функцию и в определенный нужный момент вы уже её вызываете через user.fullname() - где fullname как раз лежит в user, а значит там уже this доступен.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники