簡體   English   中英

為什么開發工具不理解閉包?

[英]Why dev tools don't understand closures?

有人可以解釋一下為什么Chrome的開發工具(也許是其他瀏覽器 - 我沒有打擾過檢查)沒有看到鏈中的變量?

所以,如果我有這樣的事情:

function wholeKit(kaboodle) {
    kaboodle.forEach((k)=> {
      k.parts.map((p)=> {
         // console.log(kaboodle, k)    
        debugger;   
      })   
    })  
}

在斷點處Chrome會看到p值,但不會看到kaboodlek 它們將是undefined 但是,如果我取消斷開斷點上方的行 - 神奇地說這些變量將不再是未定義的。 怎么會這樣?

jsbin適合那些無法精神消化ES6的人

upd:顯然這就是瀏覽器的垃圾收集器的工作原理,那些未被使用的變量被刮掉了。 現在我很好奇是否有辦法調整GC,因為當DevTools打開時?

您的代碼有語法錯誤。 forEach和map缺少右括號,Chrome不支持lambda的ES6箭頭語法。

當我將回調更改為常規函數並添加了缺少的括號時,一切正常。

function wholeKit(kaboodle) {
    kaboodle.forEach(function(k){
        k.parts.map(function(p){
            console.log(kaboodle, k)    
            debugger;   
        });
    });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM