js的闭包2

当function里嵌套function时,内部的function能够访问外部function里的变量。html

先来讲些,介绍些闭包的用处:就是为了不内存泄露而存在的,闭包重点(或者意义)就是理解js的做用域;web

1.缓存
2.面向对象中的对象
3.实现封装,防止变量跑到外层做用域中,发生命名冲突
4.匿名自执行函数,匿名自执行函数能够减少内存消耗
.
编程

但个人观点依然是:缓存

不要刻意避免使用闭包,但也不该该非要闭包。按代码设计来,按编程节奏来

 

function foo(x) { 闭包

  var tmp = 3;app

  function bar(y) {函数

    alert(x + y + (++tmp)); spa

  } 设计

  bar(10); orm

}

foo(2);

 推荐:此文很是之好:https://zhuanlan.zhihu.com/p/22486908?refer=study-fe
 
var local='变量'
function foo(){
  console.log(local);
}
 
假设上面三行代码在一个当即执行函数中(为简明起见,我就不写当即执行函数了,影响读者理解)
 

上面三行代码在一个当即执行函数中。

三行代码中,有一个局部变量 local,有一个函数 foo,foo 里面能够访问到 local 变量。

好了这就是一个闭包:

「函数」和「函数内部能访问到的变量」(也叫环境)的总和,就是一个闭包。

就这么简单。

若是还不够了解,能够去看推荐网址。

js闭包的闭包1

相关文章
相关标签/搜索