- 浏览: 132689 次
- 性别:
- 来自: 北京
文章分类
最新评论
作用域链(scope chain):
任何时候函数开始执行,都有一些对象和属性被创建。
首先,一个叫做activation object(活化对象)的特殊对象被创建,用来储存参数和该方法体中的其他本地变量或函数。这个对象你无法直接获取到,因为这属于内部机制。
其次,一个scope chain(作用域链)被创建,它包含一个有序列表,列表中的对象是由Flash Player或Adobe AIR用来核查标识符声明的。
任何执行中的函数都有一个由内部属性保存的作用域链。对于嵌套函数,作用域链开始于其自身的activation object,然后是其父函数的activation object。作用域链按照这种方式继续下去,直到global object(全局对象)。全局对象在ActionScript程序开始时被创建,包含了所有的全局变量和函数。
函数闭包(function closure):
一个函数闭包是一个对象,包含了该函数及其lexical environment(词汇环境)的快照。函数的词汇环境包含该函数所有的变量、属性、方法和用域链内的对象,以及他们的值。函数在对象或类的外部运行时,就会创建函数闭包。函数闭包保留了它被定义时的作用域,这在有些情况下会导致一些很有意思的结果,比如:函数作为参数或者返回值在不同的作用域中时。
bound method(限界方法):
限界方法,有时候也叫做方法闭包,指的是从其实例中抽出来的方法,包括作为某函数的参数或者作为某函数的返回值这两种情况。
限界方法和函数闭包类似的是,它虽然被从实例中抽取出来,但保留了本身的词汇环境。关键的不同是,在限界方法中,this关键字的引用仍然是实现该方法的实例。也就是说,限界方法中,this引用总是指向实现该方法的最初的对象。而函数闭包中,this关键字则是普通意义上的,即总是指向该方法被调用时关联的对象。
唉,关于定义还是有点模糊。
发表评论
-
Flex从swf中加载资源和类
2013-12-10 09:37 722需要为直播播放器做几个新的样式,想将每个样式的布局XML和 ... -
swf加载swf的一些问题
2013-03-20 17:31 6771,swfParent 加载 swfChild,如果有交互, ... -
NetStream appendBytes 一点经验
2013-03-20 16:25 2534最近在做基于 NetStream ... -
【译】HTML5还需要什么才能击败Flash(part 2)
2012-04-01 17:53 0What else does HTML5 need to ... -
【译】HTML5还需要什么才能击败Flash(part 1)
2012-04-01 16:36 1054What else does HTML5 need to de ... -
在AS3中自定义全局方法
2012-03-29 11:17 915http://en.flash-ripper.com/2007 ... -
Flex Class object(类对象)构成、traits和prototype
2012-03-29 10:59 1518先贴张图: 每个矩形代表一个对象。CA代表class ... -
使用flex sdk3.6的asdoc遇到的问题及解决方法
2012-03-26 10:24 1893想要对一个组件项目导出asdoc。组件的sdk是3.6,但使用 ... -
UIComponent添加Image不显示
2012-03-18 17:32 982在UIComponent中添加Image组件,图片不显示。 ... -
Flex优化技巧
2012-03-30 09:46 860http://www.jb51.net/article/182 ... -
Flex中多个柱状图和折线图的问题
2012-02-28 17:53 1941做了个柱状图和折线图的混合图表,2根3D的柱子,6根折线,遇到 ... -
AdvancedDatagrid的dataprovider属性
2012-02-22 10:15 773高级dataGrid的dataProvider的set方法里并 ... -
Sprite的宽高设置及Flex组件的混淆
2012-02-02 10:23 1651由于Bitmap和InteractiveObject同级,都继 ... -
Flex SDK3.5 PollingChannel.as 存在内存泄露bug的一种解决方法
2011-12-31 15:32 1255bug见前面的一篇文章: http://xltank.ite ... -
TextInput的ErrorString样式
2011-10-25 13:08 862http://blog.minidx.com/2008/05/ ... -
【转】Flash Player的 mm.cfg文件
2011-10-08 17:17 5133http://jpauclair.net/mm-cfg-sec ... -
Flex trace() 保存路径
2011-10-08 17:11 1051http://help.adobe.com/en_US/fle ... -
给ItemRenderer传参
2011-08-18 17:19 1430给ItemRenderer传递初始参数,可以根据参数灵活生成I ... -
AdvancedDatagrid改变行的颜色
2011-08-16 15:25 1573最早我尝试重写AdvancedDatagrid的drawRow ... -
Flex匹配中文的正则
2011-08-08 10:39 932来源 :http://bbs.airia.cn/thread- ...
相关推荐
目录 JS三座大山同步异步同步异步区别作用域、闭包函数作用域链块作用域闭包闭包解决用var导致下标错误的问题投票机闭包两个面试题原型、原型链原型对象原型链完整原型链图 JS三座大山 同步异步同步异步区别...
在后台执行环境中,闭包的作用域链包含着它自己的作用域、包含函数的作用域和全局作用域; 通常,函数的作用域及其所有变量都会在函数执行结束后被销毁; 但是,当函数返回了一个闭包时,这个函数的作用域将会...
本文实例讲述了Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作。分享给大家供大家参考,具体如下: 实例对象也可以实现闭包的功能,不过实例对象消耗的资源(内存)比闭包多。 demo.py(闭包): # 闭包,...
夯实基础中篇-图解作用域链和闭包.doc
NULL 博文链接:https://xieyaxiong.iteye.com/blog/1558277
闭包是指有权访问另外一个函数作用域中的变量的函数 这概念有点绕,拆分一下。从概念上说,闭包有两个特点: 1、函数 2、能访问另外一个函数作用域中的变量 在ES 6之前,Javascript只有函数作用域的概念,没有...
前端面试题,包含JavaScript的闭包,作用域,原型,原型链,上下文环境以及DOM,BOM封装函数深度克隆,以及一些常见的·JS问题,试题简单但是容易混淆,作为前端工程师必考题
scope-chains-closures, Javascript作用域链和闭包 workshop 范围链和闭包 workshop正在启动$ npm install -g scope-chains-closures$ scope-chains-closures # or, shorter: sccjs使用箭头
本文实例讲述了JavaScript作用域、闭包、对象与原型链概念及用法。分享给大家供大家参考,具体如下: 1 JavaScript变量作用域 1.1 函数作用域 没有块作用域:即作用域不是以{}包围的,其作用域完成由函数来决定,...
JS作用域与闭包。
如果在一个内部函数里,对一个外部作用域(但不是全局作用域)的变量进行引用,那么内部函数就被称为闭包(closure),而这个被内部函数引用的变量则被成为自由变量 闭包和函数调用没多少相关,而是关于使用定义在...
JavaScript中出现了一个以前没学过的概念——闭包。何为闭包?从表面理解即封闭的包,与作用域有关。所以,说闭包以前先说说作用域
下面小编就为大家分享一篇基于Python函数的作用域规则和闭包详解,希望对大家有所帮助。一起跟随小编过来看看吧
深度探讨javascript函数的原型链和闭包
由作用域引出的作用域链的问题, 并在此基础上讨论闭包的问题
作用域的嵌套将形成作用域链,函数的嵌套将形成闭包。闭包与作用域链是 JavaScript 区别于其它语言的重要特性之一。 作用域JavaScript 中有两种作用域:函数作用域和全局作用域。 在一个函数中声明的变量以及该函数...
当我们写一个参数比较多的函数时,如果有些参数,大部分场景下都是某一个固定值,那么为了简化使用,就可以创建一个新函数,指定我们要使用的函数的某个参数,为某个固定的值;这个新函数就是“偏函数” 2. ...
js代码-闭包原理实例 ES5 只要函数作用域,无块级作用域
正如闭包的定义一样:“闭包指的是有权访问另一个函数作用域中的变量的函数”, 闭包最大的意义就在于闭包可以对另一个函数作用域的变量进行访问,由此,闭包可以延伸出一系列的用法。 模仿块级作用域 JavaScript...