第 48 題:什麼是閉包?
閉包就是指有權訪問另一個函式作用域中的變數的函式
觀看了 JS 高階程式設計中的閉包後,發現可以描述的更具體,這個將在後期更新此篇文章
栗子
function foo() {
var local = 1;
function bar() {
local++;
return local;
}
return bar;
}
var func = foo();
console.log(func()); // 2
優點
-
可以讀取函式內部的變數
-
函式內部的變數保留在記憶體中,不被銷燬
缺點
- 在閉包不使用的情況下要及時釋放,否則將造成記憶體洩漏
文章的內容/靈感都從下方內容中借鑑
-
【持續維護/更新 500+前端面試題/筆記】http://github.com/noxussj/Interview-Questions/issues
-
【大資料視覺化圖表外掛】http://www.npmjs.com/package/ns-echarts
-
【利用 THREE.JS 實現 3D 城市建模(珠海市)】http://3d.noxussj.top/
「其他文章」
- 第 48 題:什麼是閉包?
- 第 47 題:什麼是防抖和節流?
- 第 46 題:如何判斷一個字串、物件、陣列中是否包含某個值?
- 第 45 題:陣列有哪些常用的方法?
- 第 43 題:如何使用 ES5、ES6 實現監聽物件屬性的改變?
- 第 42 題:JS 垃圾回收機制是怎樣的?
- 第 41 題:請描述一下 Javascript 事件迴圈機制?
- 第 39 題:JS 資料型別有哪些?
- 第 38 題:apply、call 和 bind 是什麼?哪些區別?
- 第 37 題:談談你對 this 指向的瞭解?
- 第 36 題:什麼是原型、原型鏈、繼承?
- 第 35 題:如何實現字串反序?
- 第 34 題:如何實現二叉查詢樹?
- 第 33 題:如何去掉一組整型陣列重複的值?
- 第 32 題:如何統計一個字串出現最多的字母?
- 第 32 題:如何統計一個字串出現最多的字母?
- 第 31 題:以上十種排序演算法的區別有哪些?
- 第 30 題:如何理解基數排序?
- 第 29 題:如何理解桶排序?
- 第 28 題:如何理解計數排序?