简单来说,闭包就是定义在一个函数内部的函数
function f1(){
var n = 999
// 匿名函数
fnAdd = function(){n += 1}
// 一个闭包
function f2(){
console.log(n)
}
return f2
}
var result = f1()
// 999
result()
fnAdd()
// 1000
result()
// 代码片段1
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
return function(){
return this.name;
};
}
};
alert(object.getNameFunc()());
// 输出:The Window
// 代码片段2
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
var that = this;
return function(){
return that.name;
};
}
};
alert(object.getNameFunc()());
// 输出: My Object