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 just landed and posted this here
Sign up to leave a comment.

Articles