当前位置: 代码迷 >> Web前端 >> 经常看到as API中的Example不带this应用,这是为什么呢
  详细解决方案

经常看到as API中的Example不带this应用,这是为什么呢

热度:329   发布时间:2012-11-04 10:42:41.0
常常看到as API中的Example不带this应用,这是为什么呢?
这是因为在as中有匿名函数这一说,在匿名函数里面加this引用,指向的并不是当前类。
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()


所以在as中this时候要审时度势,考虑清楚在用
  相关解决方案