哪位说的不急得了,大意,
“如果你不能让6岁的娃子听明白,那么你本身就没有明白”
我尝试给一个同事讲JS的闭包(closure)是如何run的,但是失败了。
各位有何高见?
我来讲你同事肯定能懂~ 利用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);
}());
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。