<?xml version="1.0" encoding="utf-8"?> <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" showCloseButton="true" layout="absolute"> <mx:Button label="fun1" click="fun1()"/> <mx:Script> <![CDATA[ private var gb:int = 1; private function fun1():void{ trace(this);//输出:AddPerson2 问题3:为什么不是global或者AddPerson? fun5(function():void{//问题2:此匿名函数中的this 指向的是global 为什么不是fun1或其他? trace(this);//输出:[object global] trace(gb);//输出:1 })(); var obj:Object = obj.fun3(); obj.fun4(); fun5_2({fun:function():void{ trace(this);//输出:[object Object] trace(gb);//输出:1 }}).fun(); } private var obj:Object = { fun3:function():Object{ trace(this);//输出:[object Object] - trace(gb);//报错:在 Object 上找不到属性 view:AddPerson::gb,且没有默认值。 return { fun4:function():void{ trace(this);//输出:[object Object] - trace(gb);//报错: } } } } private function fun5(fun6:Function):Function{ fun6(); return function():void{//问题1:此匿名函数中的this 指向的是global 为什么不是fun5 trace(this);//输出:[object global] trace(gb);//输出:1 } } private function fun5_2(param:Object):Object{ param.fun(); return { fun : function():void{ trace(this);//输出:[object Object] trace(gb);//输出:1 } } } ]]> </mx:Script> </mx:TitleWindow>
flex学习之路--问题手册:as 关于this和变量的范围【未解决,求解决】
原文地址:http://blog.csdn.net/u013934914/article/details/44856763