Спецификация языка ActionScript 3 гласит:
В ECMA-262 edition 3, когда он появляется во вложенной функции, он привязывается к глобальному объекту, если функция вызывается лексически, без явного объекта-получателя. В ActionScript 3.0 this привязан к самому внутреннему вложенному this, когда функция вызывается лексически.
(Источник: http://help.adobe.com/livedocs/specs/actionscript/3/wwhelp/wwhimpl/js/html/wwhelp.htm)
Однако я попробовал следующее, и мой результат оказался не тем, что я ожидал от приведенного выше предложения - this
внутри вложенной функции привязан к глобальному объекту:
function f():void
{
trace("f() this.a", this.a); // "ok"
function g():void { trace("g() this.a", this.a); } // "undefined"
g();
}
f.call( { a: "ok" } );
Либо здесь неверная документация, либо я не правильно понял. Вы можете мне объяснить?
this
всегда глобален внутри вложенной функции. К вашему сведению, если вы отследитеthis
, вы получите[object global]
, когда его global. - person Aaron Beall   schedule 19.02.2015