Почему this не может обращаться к функции?
Я так понимаю, что this позволяет обращаться к тому объекту, в котором выполняется функция.
Если функция также является объектом, то почему же нельзя обратиться к "родительской" функции изнутри вложенной функции? Например так:
function outerFunc() {
return function innerFunc() {
console.log(this);
}
}
outerFunc()();
Но так не выходит. Тут получается также само как и со стрелочными функциями. Внутренняя функция просто передает значение внешней. Она как будто не имеет своего собственного значения this
Почему так происходит? this может обращаться не ко всем объектам?
Ответы (1 шт):
this равно объекту, к которому функция принадлежит как его свойство, как его метод (и при этом будет вызвана как его метод). Если вы просто объявите функцию внутри функции, это не сделает внутреннюю функцию свойством внешней функции.
Если я правильно понимаю, ваши ожидания скорее отвечают такому коду:
function outerFunc() {}
outerFunc.innerFunc = function () {
console.log(this);
}
outerFunc.innerFunc(); // Выведет "function outerFunc() {}"