JavaScript 清除閉包
閉包在JavaScript中是一個很重要的概念,本文不做介紹。
具體可以參閱JavaScript 閉包一章節。
閉包雖然是一個利器,但是也有弊端,本文同樣不做介紹,下面直接進入正題。
例如"變數只初始化一次"這樣的需求,在常規的語言中可以使用如下方式:
[C#] 純文字檢視 複製程式碼class Class{ function init(){ this.n = 0; } function func(){ this.n ++; return this.n; } } var obj = new Class();
js通常則需要使用閉包來解決此問題:
[JavaScript] 純文字檢視 複製程式碼var obj = { func : (function(){ var n = 0; return function(){ n ++; return n; } })() }
但更建議採用這種方法(消除閉包):
[JavaScript] 純文字檢視 複製程式碼function Class(){ var self = this; self.n = 0; self.func = function(){ self.n ++; return self.n; } } var obj = new Class();
因為後者的可擴充套件性更好. 當需要實現對一個變數的不同操作時, 後一種可以只需要再定義一個不同的函式(也就是簡單線性擴充套件), 而前一種(閉包)則需要完全重寫。
相關文章
- JavaScript閉包JavaScript
- JavaScript 閉包JavaScript
- JavaScript - 閉包JavaScript
- [JavaScript閉包]Javascript閉包的判別,作用和示例JavaScript
- 閉包 | 淺談JavaScript閉包問題JavaScript
- 理解JavaScript 閉包JavaScript
- JavaScript 的閉包JavaScript
- JavaScript-閉包JavaScript
- JavaScript之閉包JavaScript
- 解密JavaScript閉包解密JavaScript
- Javascript 閉包(Closures)JavaScript
- 理解 JavaScript 閉包JavaScript
- Javascript閉包(Closure)JavaScript
- JavaScript 閉包基本指南JavaScript
- JavaScript 閉包那些事JavaScript
- 理解Javascript的閉包JavaScript
- JavaScript閉包詳解JavaScript
- 詳解 JavaScript 閉包JavaScript
- JavaScript:閉包學習JavaScript
- Javascript 閉包小結JavaScript
- JavaScript深入之閉包JavaScript
- JavaScript 深入之閉包JavaScript
- 學習Javascript閉包JavaScript
- javascript 閉包詳解JavaScript
- javascript閉包—圍觀大神如何解釋閉包JavaScript
- 深入理解javascript原型和閉包(15)——閉包JavaScript原型
- 對javascript閉包的理解JavaScript
- JavaScript —— this、閉包、原型、非同步JavaScript原型非同步
- javascript閉包的個人理解JavaScript
- 深入淺出Javascript閉包JavaScript
- javascript之溫習閉包JavaScript
- 理解 JavaScript 中的閉包JavaScript
- Javascript—閉包詳解(3)JavaScript
- JavaScript閉包的那些事~JavaScript
- Javascript 閉包並非魔法JavaScript
- javascript閉包概念介紹JavaScript
- 徹底弄懂 JavaScript 閉包JavaScript
- Javascript 閉包——摘自網路JavaScript