javascript閉包用法例項程式碼分析
閉包在js中具有舉足輕重的地位,對於閉包的恰當應用能夠使其成為一個有力的編碼利器,本章節就通過程式碼例項分析一下閉包的作用,希望能夠給需要的朋友帶來一定的幫助,關於閉包的概念可以參閱javascript閉包概念簡單解析一章節。
先看一個程式碼例項:
[JavaScript] 純文字檢視 複製程式碼var obj={ value:8, add:function(num){ this.value+=(typeof(num)==="number")?num:1; } } obj.add(); console.log(obj.value); obj.add(5); console.log(obj.value);
上面的程式碼執行一切正常,但是有個隱患,你不能保證value的值不會被外部惡意修改,因為value屬性對外部是完全開放的。
程式碼修改如下:
[JavaScript] 純文字檢視 複製程式碼var obj=(function(){ var value=8; return{ add:function(num){ value+=(typeof num === "number")?num:1; }, getValue:function(){ return value; } }; })(); obj.add(); console.log(obj.getValue()); obj.add(2); console.log(obj.getValue());
在以上程式碼中,由於變數value是一個區域性變數,外部不能夠隨意訪問,只能夠通過呼叫add方法的方式修改value的值。
再來看一段程式碼例項:
[JavaScript] 純文字檢視 複製程式碼var func=function(value){ return{ getValue:function(){ return value; } } } var obj=func("antzone"); console.log(obj.getValue());
以上程式碼也是一個閉包的應用,我們可以看做這裡的value是一個區域性變數,當func()函式執行完畢之後,我們依然可以使用此函式返回的物件訪問此變數。
相關文章
- 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
- 閉包學習 1--例項分析 ComposerStaticInitxx::getInitializer
- 深入理解javascript系列(九):應用閉包JavaScript
- JavaScript 閉包基本指南JavaScript
- JavaScript 閉包那些事JavaScript
- 理解Javascript的閉包JavaScript
- JavaScript閉包詳解JavaScript
- Ruby 中的閉包-程式碼塊
- Javascript—閉包詳解(3)JavaScript
- 理解 JavaScript 中的閉包JavaScript
- 對javascript閉包的理解JavaScript
- javascript之溫習閉包JavaScript
- JavaScript —— this、閉包、原型、非同步JavaScript原型非同步
- 深入淺出Javascript閉包JavaScript
- Javascript中的閉包encloureJavaScript
- Javascript 閉包並非魔法JavaScript
- Javascript-this/作用域/閉包JavaScript
- JavaScript閉包的那些事~JavaScript
- Spark閉包 | driver & executor程式程式碼執行Spark
- JavaScript in運算子程式碼例項JavaScript
- 中文轉換成html中的utf-8的方法例項程式碼HTML
- 用垃圾回收機制解釋JavaScript中的閉包JavaScript
- 封裝type方法例項封裝
- JavaScript之作用域和閉包JavaScript
- javascript中閉包是什麼JavaScript
- javascript閉包的個人理解JavaScript
- 簡單介紹JavaScript閉包JavaScript
- JavaScript運動框架程式碼例項JavaScript框架