javascript闭包

今天在网上看见JS闭包的文章,做个备忘

闭包(closure)的概念:可以简单理解成,闭包就是能够读取其他函数内部变量的函数。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。

 

范例:

 

function f1(){
	var n=999;
	nAdd=function(){n+=1}
	function f2(){
		alert(n);
	}
	return f2;
}
var result=f1();
result(); // 999
nAdd();
result(); // 1000
var name = "The Window";
var object = {
  name : "My Object",
  getNameFunc : function(){
    return function(){
      return this.name;
    };
  }
};
alert(object.getNameFunc()());

你可能感兴趣的:(JavaScript)