Цитата:
|
например, если это будет несвязанная ф-ия, в которой будет использован this, то при передаче этот this будет ссылаться на объект, в чей метод мы передали ф-ию => объект запустит в себя троянского коня, который сможет изнутри его расколбасить как угодно)))
|
Это есть в AS2 - там вообще даже методы классов на самом деле несвязные.
В AS3 анонимная ф-ция превращается в некое свойство какого-то глобального класса (Context?).

Код AS3:
package
{
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite
{
public function Main():void
{
if (stage) a();
else addEventListener(Event.ADDED_TO_STAGE, a);
}
private function a(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
trace("a:" + this)
function b():void { trace("b:" + this); };
b();
}
}
}
Цитата:
a:[object Main]
b:[object global]
|