学习参数
学习参考: 学习Javascript闭包(Closure)
什么是闭包
你去百度Google好了!反正是说了那么多也没能好好理解闭包,
通俗地讲闭包就是一个定义在函数内部的函数
当然你可以把父函数当作一个对象也就是(object)使用,
把闭包当作它的公开方法(public method),
把内部变量当作它的私有属性(private value)
理解闭包思想
闭包访问全局变量
<script>
var name = "The Window";
var object = {
name : "My Object",
getNameFunc : function(){
// 返回一个匿名全局方法
return function(){
// 匿名全局方法的当前 this 为 window 对象,
// 所以 return this.name 也就是返回了 window 对象下的全局变量 name,
// 所示调用时会输出 The Window
return this.name;
};
}
};
alert(object.getNameFunc()()); // The Window
</script>
闭包访问局部变量
<script>
var name = "The Window";
var obj = {
name : "My Object",
getNameFunc : function(){
// 保存当前 this 也就是 obj 对象
var that = this;
// 返回一个匿名全局方法
return function(){
// 返回当前对象 obj 属性 name
// 所示调用时会输出 My Object
return that.name;
};
}
};
alert(obj.getNameFunc()()); // My Object
</script>