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

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

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


Что там такого творится внутри
  • Вопрос задан
  • 564 просмотра
Подписаться 6 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Stepik
    JavaScript с нуля - основы языка и практика для начинающих
    2 недели
    Далее
  • Merion Academy
    Фронтенд-разработчик с нуля
    4 месяца
    Далее
  • Skypro
    JavaScript-разработчик с нуля
    9 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 2
IceRD
@IceRD
А что должно быть, если получаете [native code] и у него отсутствует прототип?
var x = (function(){}).call
x.prototype; // undefined
Ответ написан
Присваиваешь переменной метод - теряешь контекст. Ели хочешь получить функцию с привязанным контекстом - используй bind
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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