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 閉包那些事JavaScript
- 理解Javascript的閉包JavaScript
- JavaScript閉包詳解JavaScript
- Javascript—閉包詳解(3)JavaScript
- 理解 JavaScript 中的閉包JavaScript
- 對javascript閉包的理解JavaScript
- javascript之溫習閉包JavaScript
- JavaScript —— this、閉包、原型、非同步JavaScript原型非同步
- 深入淺出Javascript閉包JavaScript
- Javascript中的閉包encloureJavaScript
- Javascript 閉包並非魔法JavaScript
- Javascript-this/作用域/閉包JavaScript
- JavaScript閉包的那些事~JavaScript
- JavaScript之作用域和閉包JavaScript
- javascript中閉包是什麼JavaScript
- javascript閉包的個人理解JavaScript
- 簡單介紹JavaScript閉包JavaScript
- javascript 基礎(作用域和閉包)JavaScript
- JavaScript閉包原理與用法例項JavaScript
- JavaScript4:函式和閉包JavaScript函式
- 前端戰五渣學JavaScript——閉包前端JavaScript
- 【譯】理解JavaScript閉包——新手指南JavaScript
- 進擊的 JavaScript(四) 之 閉包JavaScript
- Javascript深入之作用域與閉包JavaScript
- javascript中的閉包closure詳解JavaScript
- 1.13 JavaScript4:函式和閉包JavaScript函式
- JavaScript夯實基礎系列(二):閉包JavaScript
- JavaScript物件導向~ 作用域和閉包JavaScript物件
- javascript閉包的使用–按鈕切換JavaScript