我想了解javascript引擎如何以及何時將值傳遞給回調函數,我嘗試過調試並在線查找,但我無法找到確切答案,請考慮以下示例:如何將值傳遞給javascript中的回調
for(var i = 0; i < 4; i++) {
console.log("outside callback " + i + " ");
setTimeout(function test(){
console.log("inside callback " + i + " ");
},100);
}
此打印輸出如下
外回調0
外回調1
外回調2
外回調3
內回調4
內回調4
內回調4
內回調4
如果我只是改變我使用變量的聲明讓關鍵字如下:
for(let i = 0; i < 4; i++) {
console.log("outside callback " + i + " ");
setTimeout(function test(){
console.log("inside callback " + i + " ");
},100);
}
它導致下面的輸出:
外回調0
外回調1
外回調2
外回調3
內部回調0
內部回調1
內部回調2
內部回調3
當在Chrome調試這一點,它示出了我在第一個例子中作爲封閉範圍爲測試功能和第二個例子中的塊範圍。
變量作用域與「_when javascript引擎將值傳遞給回調函數_」有什麼關係? – Teemu