function
box()
alert(box()); //lee
function
()
var box=function
() alert(box()); //lee
(function
())()
;
var box=(function
() )();
alert(box); //lee
alert((function
() )());
(function
(age) )
(100)
;
函式裡面放匿名函式(形成閉包)
function
box()
}alert(box()()); //lee
//另一種返回方法
//var b=box();
//alert(b());
建立閉包的常見方式就是乙個函式的建立另乙個函式,通過另乙個函式訪問這個函式的區域性函式
function
box()
}alert(box()()); //100
使用全域性變數進行累加
var age='100'; //全域性變數
function
box()
//alert
(age) //全域性 100
box();
alert(age); //101
box();
alert(age); //102
box();
alert(age); //103
使用區域性變數進行累加
function
box()
alert(box()); //101 不管執行多少次都是101 放在裡面每次都被初始化了
alert(box()); //101
alert(box()); //101
使用匿名函式實現變數駐留在記憶體中從而實現累加
function
box()
}var b = box();
alert(b()); //101
alert(b()); //102
alert(b()); //103
迴圈裡的匿名函式的取值問題
//使用較多的一種方法
function
box();
})(i);
}//已經執行完畢了,num為什麼可以0,1,2,3,4
return arr;
}var b= box();
for(var i=0;i<5;i++)
關於this物件
var box=
}alert(this); //[object window]
alert(box.getthis()); //[object object]
//this的指向問題
var user='the window';
var box=;
}}alert(user); //the window
alert(box.getuser()()); //the window 特別注意: 閉包在執行時指向window
如何閉包裡面this指向box(方法一:使用物件冒充)
var user='the window';
var box=;
}}alert(box.getuser()()); //the window;
alert(box.getuser().call(box)); //the box 物件冒充
如何讓閉包裡的this指向box(方法2:改變作用域)
var user = 'the window';
var box=
return
function()}
alert(box.getuser()()); //the box
閉包與匿名函式
普通函式 function box 匿名函式 function 通過表示式自我執行 functionbox 表示執行函式,並且傳參 把匿名函式賦值給變數 var box function alert box 呼叫方式和函式呼叫相似 函式裡的匿名函式 function box alert box 呼叫...
匿名函式和閉包
匿名函式 匿名函式和普通函式 function box alert box 閉包概念 閉包是指有權訪問另乙個函式作用域中的變數的函式,建立閉包的常見的方式,就是在乙個函式內部建立另乙個函式,通過另乙個函式訪問這個函式的區域性變數。閉包作用 使用閉包有乙個優點,也是其缺點。可以把區域性變數駐留在記憶體...
閉包和匿名函式
匿名函式 沒有函式名稱的函式 這就是匿名函式 function argument1,argument2 閉包 乙個可以使用另外乙個函式作用域中的變數的函式。如下面的 函式b就是閉包,但是這個前提是 當函式a的內部函式b被函式a外的乙個變數引用的時候,就建立了乙個我們通常所謂的 閉包 意思是說b要變成...