Задать вопрос
@YakovSpb

Почему в этом примере во втором случае Undefined?

var fullname = 'Mark Ivanov';
var obj = {
   fullname: 'Joe Milner',
   prop: {
      fullname: 'David Smith',
      getFullname: function() {
         return this.fullname;
      }
   }
};

console.log(obj.prop.getFullname());

var test = obj.prop.getFullname;

console.log(test());
  • Вопрос задан
  • 145 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 2
Это базовые знания, без которых будете наступать на кучу граблей, вы открепляете метод от объекта и он теряет контекст.
Рекомендую прочитать https://www.oreilly.com/library/view/javascript-th...
Ну или хотябы https://learn.javascript.ru/bind
Ответ написан
Комментировать
@Mihail_igorevich
При присваивании let test = obj.prop.getFullname; теряется контекст this. Можно привязать контекст при помощи bind let test = obj.prop.getFullname.bind(obj);.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы