好久沒發內容了:先發個簡單的知識點
我們都知道for回圈
for (var i = 0; i < 10; i++) { console.log(i) } //列印0-9
那么,如果換成這兩種呢?
var a = null; for (var i = 0; i < 10; i++) { a = function(){ console.log(i); } a(); } //列印0-9
var a = null; for (var i = 0; i < 10; i++) { a = function(){ console.log(i); } } a(); //列印10
為什么會有兩種不同的結果,說到這兒大家都想到了立即執行函式,
當函式在for回圈內執行的時候,回圈一次函式執行一次列印一次 i , 所以 i 的值也在變化,
反之,當函式在for回圈外執行的時候, 函式是在for回圈執行完畢后才執行, 此時的 i 的值也變為10了, 所以列印結果不同,
很多時候我們都需要在回圈的程序中系結函式,但卻不立即執行,針對此種情況, 建議將var 改為 let;
for (var i = 0; i < elements.length; i++) { elements[i].onclick = function(){ console.log(i) } } //點擊不同的element(存放系結點擊事件的DOM),列印出來的是0-elements.length元素的索引
簡單寫一下,建議多做測驗,這樣才能更好理解
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/170397.html
標籤:JavaScript
