想問一下關於setInterval在傳遞變數時如何設置比較恰當
var flag=true;
if(flag==true){
var index=0;
setInterval(theFinction,2000,index++);
}
theFinction(index){
console.log(index);
}
假定我要傳送index,讓它顯示0,1,2,3....
但在我不寫成全域變數的情況下,他只會一直跑0,0,0,0,.....
或是用return function製造出closure:
https://jsfiddle.net/6t29esv7/
fillano大return function那是怎麼一直抓到i?全部變數?
就說是closure阿XD,你去找一下closure的資料,例如:
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Closures
var flag=true;
function display_index(){
console.log(index);
index += 1;
}
index = 0;
// console.log(index);
if(flag == true){
setInterval(display_index,2000);
}
使用全域變數。