閉包與匿名函式

2021-07-30 13:52:34 字數 949 閱讀 3097

//普通函式 

function

box()

//匿名函式

function

()//通過表示式自我執行

(functionbox() )(); //()表示執行函式,並且傳參

//把匿名函式賦值給變數

var box=function

(); alert(box()); //呼叫方式和函式呼叫相似

//函式裡的匿名函式

function

box()

} alert(box()()); //呼叫匿名函式

var result = ;

function

fn()

}}fn();

result[0](); --->5

result[1](); --->5

result[2](); --->5

fn()函式呼叫完成後已經完成了所有遍歷,但是此時由於是閉包,內部的i並沒有銷毀,於是呼叫result[0]可以取出i的值5

var result = ;

function

fn()

})(i);

}}fn();

result[0](); -->0

result[1](); -->1

result[2](); -->2

fn(自執行的匿名函式(匿名函式))

中間層的自執行匿名函式將自由變數i傳入後保護了i不被外界改變,所以每次迴圈得到的 i 都被保護到中間層的自執行的匿名函式內了!

由於閉包裡作用域返回的區域性變數資源不會被立刻銷毀**,所以可能會占用更 多的記憶體。過度使用閉包會導致效能下降,建議在非常有必要的時候才使用閉包。

匿名函式與閉包

function box alert box leefunction var box function alert box lee function var box function alert box leealert function function age 100 函式裡面放匿名函式 形成閉...

匿名函式和閉包

匿名函式 匿名函式和普通函式 function box alert box 閉包概念 閉包是指有權訪問另乙個函式作用域中的變數的函式,建立閉包的常見的方式,就是在乙個函式內部建立另乙個函式,通過另乙個函式訪問這個函式的區域性變數。閉包作用 使用閉包有乙個優點,也是其缺點。可以把區域性變數駐留在記憶體...

閉包和匿名函式

匿名函式 沒有函式名稱的函式 這就是匿名函式 function argument1,argument2 閉包 乙個可以使用另外乙個函式作用域中的變數的函式。如下面的 函式b就是閉包,但是這個前提是 當函式a的內部函式b被函式a外的乙個變數引用的時候,就建立了乙個我們通常所謂的 閉包 意思是說b要變成...