Comments 11
Про глобальные функции тогда уж тоже надо было рассказать, а то материал неполный получился.
У функций вида function() {} this равен объекту window, это у методов this равен объекту перед точкой.
Почему везде undefind? Если undefined же…
Контекст для function(){} определяется в момент их вызова и равен объекту перед точкой.
var a = {
b: (function(){ console.log(this); }).bind(window)
};
a.b(); // window
Строго говоря в b попадает новая функция (результат вызова .bind(window)), которая при вызове устанавливает в качестве контекста выполнения this предоставленное значение (window) — что и происходит в вашем примере.
В данной статье не рассматривались такие методы, как bind, call и apply.
Возможно, их стоило включить, но было принято решение не делать этого, чтобы не перегружать материал.
Возможно, их стоило включить, но было принято решение не делать этого, чтобы не перегружать материал.
Sign up to leave a comment.
Коротко о this в функциях javascript