學習參數
學習參考: 學習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>