关于闭包

闭包,官方对闭包的解释是:
一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分

个人理解:
当一个内部函数被其外部函数之外的变量引用时,就形成了一个闭包(函数套函数|定义在一个函数内部的函数)

用途(作用,副作用):
当我们需要在模块中定义一些变量,并希望这些变量一直保存在内存中但又不会污染全局的变量时,就可以用闭包来定义这个模块。
副作用 闭包不会释放变量,占内存
好处 可以读取函数内部的变量, 让这些变量的值始终保持在内存中
实例
eg1:function A(){
var count = 0;
function B(){
count ++;
console.log(count);
}
return B;
}
var C = A();
C();// 1
C();// 2
C();// 3

eg2:

(function(document){
var viewport;
var obj = {
init:function(id){
viewport = document.querySelector("#"+id);
},
addChild:function(child){
viewport.appendChild(child);
},
removeChild:function(child){
viewport.removeChild(child);
}
}
window.jView = obj;
})(document);

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 卡尔维诺中文站留言板这个帖子专门用作卡尔维诺中文站的留言板,欢迎大家留言和提问。...阮一峰2007-01-04T...
    舟渔行舟阅读 338评论 0 1
  • 写这篇文章时的心情是十分忐忑的,因为对于我们今天的主角:闭包,很多小伙伴都写过关于它的文章,相信大家也读过不少,那...
    我是大橙阅读 330评论 0 1
  • 今天看到了一段关于闭包的文章,感觉挺好 挺有用的 我拿过来和大家分享一下,希望看到的小伙伴都能彻底理解闭包 =>...
    your_own_king阅读 308评论 0 2
  • 1.什么是闭包? 有什么作用 闭包指有权访问另一个函数作用域的变量的函数。创建闭包的常见方式 是 在一个函数...
    JunVincetHuo阅读 1,441评论 0 2
  • 本文章著作权归饥人谷_Lyndon和饥人谷所有,转载请注明出处。 闭包对于我而言是一个难点,但闭包又是一个很有用的...
    HungerLyndon阅读 1,095评论 1 3