@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());
  • Вопрос задан
  • 142 просмотра
Решения вопроса 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);.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект