Pull to refresh

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.
Возможно, их стоило включить, но было принято решение не делать этого, чтобы не перегружать материал.
UFO landed and left these words here
Only those users with full accounts are able to leave comments. Log in, please.