У меня есть следующий код:Это внутренняя функция при вызове при вызове
var outer = function(){
var that = this;
function inner(){
assert(this===that, "Inner === Outer");
console.log(this);
console.log(that);
}
inner();
return this;
};
outer();
var obj = {};
outer.call(obj);
Когда первый вызов выполняются - внешний(). Для меня все ясно - внешняя называется в контексте окна и как это, так и это === окно. Тогда вещи становятся проводными, когда я вызываю функцию external be call function. Это === obj, что очевидно, но почему это === окно?