关于javascript中的闭包
2014-03-20 13:26
246 查看
var myObject=function(){ var value=0; return { increment: function(inc){ value +=inc;//不能加this,this指向全局对象 }, getValue: function(){ return value; } } }(); myObject.increment(2); console.log(myObject.getValue());
什么是闭包?
Closures are functions that refer to independent (free) variables.
In other words, the function defined in the closure 'remembers' the environment in which it was created.
闭包有什么用?
如本文所展示的例子:
借助javascprit的链式作用域实现对私有变量的封装,并使其常驻内存
另外《学习Javascript闭包(Closure)》举的例子也很好
例1:
function f1(){ var n=999; nAdd=function(){n+=1} function f2(){ alert(n); } return f2; } var result=f1(); result(); // 999 nAdd(); result(); // 1000例2:
var name = "The Window"; var object = { name : "My Object", getNameFunc : function(){ return function(){ return this.name; }; } }; alert(object.getNameFunc()());例3:
var name = "The Window"; var object = { name : "My Object", getNameFunc : function(){ var that = this; return function(){ return that.name; }; } }; alert(object.getNameFunc()());
相关文章推荐
- JavaScript 关于闭包的思考 总结
- 关于javascript的闭包
- 关于javascript面向对象之闭包
- javaScript 关于闭包问题
- 简单小结一下关于JavaScript中的闭包
- javascript基础知识复习1-关于闭包
- 关于 javascript 闭包及函数原型 作用链域 总结
- JavaScript关于闭包
- JavaScript关于闭包
- 【javascript笔记】关于javascript中的闭包
- 关于javascript的闭包、模块化以及单例模式
- 关于javascript中闭包的理解
- javascript 关于闭包的知识点
- 关于JavaScript的闭包
- 关于Javascript 闭包的理解
- 关于JAVASCRIPT中的闭包(Closure)!
- JavaScript关于作用域、作用域链和闭包的理解
- 关于 Javascript 的闭包理解
- 关于javascript的闭包之笔记
- javascript关于事件与闭包