- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
javascript语言中的闭包
HYPERLINK /zkjbeyond/archive/2006/05/19/47025.html javascript语言中的闭包 一、Introduction Closure (闭包)A closure is an expression (typically a function) that can have free variables together with an environment that binds those variables (that closes the expression). ??? 闭包是ECMAScript(javascript)语言强大的特征之一,如果没有真正的理解它的概念,不可能很好使用它。在一般浏览器环境中,它们很容易被建立,但也会造成比较难理解的代码逻辑。为了避免闭包引起的缺点,利用它所提供的优点,明白它的机制是重要的。javascript语言的闭包很大程度上依靠 scope chains(函数,变量的范围链) 和 javascript对象的灵活的属性机制 实现。??? 闭包简单的解释是,ECMAScript允许inner functions(嵌套函数):函数可以定义在另外一个函数里面(关于嵌套函数可以看看javascript权威指南)。这些内部的函数可以访问outer function(父函数)的local变量,参数,其它内部函数。当内部函数被构造,并可以在函数外被获得(函数当成返回值),这个内部函数被在 outer function返回后被执行(在outer函数外执行),那一个闭包形成了。(简单的理解,function被当成数据类型传递或动态执行)。 inner function还有权利访问 那些outer function(父函数)的local变量,参数,其它内部函数。那些outer function(父函数)的local变量,参数,其它内部函数在outer function返回前就有值,并返回的inner function需要改变这些值。我估计以下代码就是一个闭包。 ? script var?g_count = 0 ;function?aaa(p) { // outer?function ? var?outer_count = 0 ;? function?innerfun(name,count) { // outer?function中定义的另外一个inner?function ??? return ?name + : + count + 次; ;? } ? return ?function() { // 返回一个匿名的inner函数 ???? var?inner_count = 0 ;???????????? return ?innerfun( g_count ,( ++ g_count)) + innerfun( outer_count ,( ++??? outer_count))+innerfun(inner_count,(++inner_count))+p;? } } ? var?fun1=aaa(fun1);?var?fun2=aaa(fun2);?alert(fun1)?alert(fun1());//这时候才真正执行? alert(fun2());/script ??? 不幸的,完全明白闭包需要知道它背后的机制和一些技术细节。二、The Resolution of Property Names on Objects (javascript对象的属性)??? ECMAScript认可两类对象,“Native Object”和“Host Object”,Host Object属于Native Object的子类,在(ECMA 262 3rd Ed Section 4.3)中叫Built-in Object(内置对象)。Native objects属于语言级别,host objects被环境提供(浏览器等),例如,document objects,DOM nodes等。??? 关于对象属性的存取,数据类型,原型对象prototype的使用,我这就不译了。??? 可以参见 HYPERLINK /zkjbeyond/archive/2006/04/17/41531.html 我的另一篇文章 三、Identifier Resolution, Execution Contexts and Scope Chains 1、The Execution Context ??? 执行环境上下文(Execution Context)是个抽象的概念,the ECMSScript specif
您可能关注的文档
最近下载
- 防盗门施工组织设计方案.doc VIP
- 2025年版高等职业教育专科专业教学标准 460115 智能光电制造技术.docx
- [美国时代周刊]Time2012-06-25.pdf VIP
- 中医医疗医院设备配置标准.pdf VIP
- 陕2023TJ 077《住宅厨房、卫生间装配式L型构件排气道系统图集》.pdf VIP
- (完整word版)JGJ107-2016钢筋机械连接技术规程.doc VIP
- 三+《品质》(教学课件)-【中职专用】高二语文(高教版2023·职业模块).pptx VIP
- 新课标下体育中考项目现状的分析与思考.docx VIP
- 新员工入职适应期的评估体系与职业发展建议.docx VIP
- 第三周(9月15日)国旗下讲话稿:勿忘国耻振兴中华.pdf VIP
文档评论(0)