开发者社区> 问答> 正文

JavaScript的闭包是如何工作的?

哪位说的不急得了,大意,

“如果你不能让6岁的娃子听明白,那么你本身就没有明白”

我尝试给一个同事讲JS的闭包(closure)是如何run的,但是失败了。

各位有何高见?

展开
收起
a123456678 2016-07-15 15:57:29 2318 0
1 条回答
写回答
取消 提交回答
  • 我来讲你同事肯定能懂~ 利用IIFE(即时函数表达式 就是如下code)的function作用域来包装变量不作全局外溢,并且通过全局引用使代码留在内存里继续工作,这种方式就叫闭包。

    (function(){
        xxx;
    }())
    全局引用可以是显式地使用 window.xxx=xxx,jquery就是这样暴露出来的。
    
    (function(){ 
        window.xxx={}; 
    }());
    或者在包里使用return,在外部赋值
    var obj=(function(){
        return xxx;
    }());
    在浏览器里使用,使用包内的方法作绑定DOM事件的参数也会让该方法留在内存里
    (function(){ 
        document.getElementById('xxx').addEventListener('click',xxx);
    }());
    2019-07-17 19:57:09
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载