这是因为在as中有匿名函数这一说,在匿名函数里面加this引用,指向的并不是当前类。
输出的结果是
但是如果把testabc()修改成
那么就会报错
[color=red]所以在as中this时候要审时度势,考虑清楚在用[/color]
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
public class ExampleApplication1_6 extends Sprite
{
private var _sprite:Sprite;
public function ExampleApplication1_6()
{
trace(this);
function test():void {
trace(this);
testabc();
}
test();
}
private function testabc():void {
trace("testabc");
}
}
}
输出的结果是
[object ExampleApplication1_6]
[object global]
testabc
但是如果把testabc()修改成
this.testabc();
那么就会报错
TypeError: Error #1006: testabc 不是函数。
at com.dragon.cookbook.chapter01:ExampleApplication1_6/$construct/com.dragon.cookbook.chapter01:test()
[color=red]所以在as中this时候要审时度势,考虑清楚在用[/color]