MrDinkyToster
@MrDinkyToster

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

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

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

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

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


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

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

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

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

Войти через центр авторизации
Похожие вопросы