注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

让一切都逝去吧

排骨炖泥菜/猪肝炒苹果/鱼籽狗肉汤/狗头薏米汤

 
 
 

日志

 
 

Flex作用域示例2则  

2009-03-09 09:56:43|  分类: Flex |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
package {
    import flash.display.Sprite;
 
    public class scope_test extends Sprite{
        public function scope_test(){
            fee()();
        }
        private var i:int = 1;
 
        private function fee():Function{
           var i:int = 2;
           var f:Function = function():void{
                trace(i)// output 2
             }
             return f;
 }
    }
}

这个例子中,函数f在构造函数中执行,但是输出的i不是指向类变量i,而是函数fee里局部变量i。
完全是根据文本位置决定的,而不管函数在哪里调用(哪怕在别的对象里)。

 

package {
        import flash.display.Sprite;
 
        public class scope_test extends Sprite
        {
                public function scope_test(){
                        fee()
                }
 
                private var i:int = 1;
 
                private function fee():void
                {
                        trace(i); //output 0
                        var i:int = 2;
                }
        }
}
执行到trace(i)的时候,由于i的赋值语句还没有被压入方法堆栈,于是i的值是0.
  评论这张
 
阅读(733)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017