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

Откуда берется this в функциях из prototype встроенных псевдо-классов в JS?

Здравствуйте, интересует такой вопрос: откуда в данном примере берется this и почему он указывает на саму функцию?

Function.prototype.defer = function (time) {
   setTimeout(this, time);
};

function f() {
  alert( "Hello" );
}

f.defer(1000); // выведет "привет" через 1 секунду


Заранее спасибо.
  • Вопрос задан
  • 202 просмотра
Подписаться 1 Средний 1 комментарий
Решения вопроса 1
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
Function.prototype.defer = function (time) {
   setTimeout(this, time);
};

Конкретно здесь - ссылка на все экземпляры объектов, то есть - на все функции, поскольку все функции - это объекты, наследующие у Function.prototype.

А вообще - это контекст вызова функции. То есть, при прямом вызове метода объекта this укажет на сам объект.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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