Цитата:
|
Не слушайте предыдущего оратора, от тут в качестве потешного, который тужится всем показать, что он что-то понимает
|
Лол, ну да, тебе с семнадцатью постами и двумя неделями после регистрации, несомненно, прекрасно известно, кто тут дурачок.
Цитата:
|
Само сабой, он не в "каждой ф-ции свой", а для каждого вызова свой
|
Да, так точнее. Контекст функции определяется в момент вызова и зависит от синтаксиса вызова.
При вызове глобальной функции this == window.
"use strict";
function showContext() {
console.log(this);
}
showContext(); // Window
При вызове замкнутой функции this == undefined (в строгом режиме, разумеется).
"use strict";
(function(callback) {
function showContext() {
console.log(this);
}
showContext(); //undefined
})();
При вызове функции как метода какого-то объекта this равен этому объекта.
"use strict";
(function(callback) {
function showContext() {
console.log(this);
}
var object = {
method: showContext
};
object.method(); //Object { method: showContext() }
})();
Также можно явно указать контекст функции с помощью Function#call, что и происходит в Array#forEach - здесь this резолвится в перебираемый массив.