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

相關文章
相關標籤/搜索