源代码
<?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>
图片说明
问题:
1.第9行,输出为什么不是global或者AddPerson?为什么是AddPerson2?
2.第11行,输出为什么是global?
3.怎么判断this关键字是global还是其他?
4.第23行,this作用域链中,[0] 为什么是匿名的?而别的却是指向方法的。
5.第24行,全局变量gb为什么不能被访问到?
求大神解答:
时间: 2024-08-29 16:45:31