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

Почему f.call ведет себя так?

var x = (function(){}).call;
console.log(typeof x); // function
x(this); // Uncaught TypeError: x is not a function


Что там такого творится внутри
  • Вопрос задан
  • 564 просмотра
Подписаться 6 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
IceRD
@IceRD
А что должно быть, если получаете [native code] и у него отсутствует прототип?
var x = (function(){}).call
x.prototype; // undefined
Ответ написан
Присваиваешь переменной метод - теряешь контекст. Ели хочешь получить функцию с привязанным контекстом - используй bind
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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