JavaScript閉包原理分析

2021-09-17 02:16:53 字數 747 閱讀 6772

寫了幾個小例子揭示js中閉包的本質,適合自己執行後分析。

html檔案

01

2345

什麼是閉包

js**

$(function () );}/*

解決方案一:借用dom元素的屬性儲存序號i

*/for (var i = 0; i < 6; i++) );}/*

解決方案二:利用iife將i作為引數傳遞給內部函式

*/for (var i = 0; i < 6; i++) );

})(i);}/*

錯誤方案:iife使用位置錯誤

*/for (var i = 0; i < 6; i++) )(i);

});}

/*解決方案三:利用iife所創造的「塊級作用域」,將i賦值給區域性變數

*/for (var i = 0; i < 6; i++) );

})();}/*

什麼是閉包?

*/function closure()

}var foo = closure();

foo();

foo();

foo();

var bar = closure();

bar();

bar();

bar();

$('.hide').show().on('click', foo)

});

javascript閉包詳解

下面先看乙個例子,在不執行的情況下推測一下返回結果.function t1 return t2 var temp t1 var age 99 temp 在學習了作用域之後也許會分析結果是99,實際上是20.下面對其一一分析 在大部分語言中,t1被呼叫執行,則申請記憶體並把其區域性變數push入棧。t...

javascript閉包使用

之前看到一段 很是不能理解,然後就查詢資料並且找網路上得大牛請教,最後弄懂了這段 然後就拿出來總結一下。先來看一段 var arrtest for var i 0 i 3 i arrtest function function function console.log arrtest 0 tostr...

javaScript閉包理解

以下是樓主的見解,如有錯誤請幫忙矯正。以下是是乙個簡單的閉包例子 function creatfunc var myfunc creatfunc alert myfunc 變數variable是乙個閉包,閉包的生命週期一般為呼叫閉包的物件為空 null 時結束。舉乙個複雜點的例子 var singl...