匿名函式與閉包

2021-07-10 08:33:27 字數 2394 閱讀 5363

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要變成...