我有以下代碼:使用Javascript - 的函數的外部引用顯示「未定義」
function log(a) {
var b = 5;
a();
}
log(function(){
console.log(b);
});
當功能日誌被執行的匿名功能,我得到「B沒有定義」。好吧,看起來anon的外部環境引用不是日誌的,因爲如果它不是在它內部創建的,所以它無法找到該變量。那麼它在哪裏被創建?在全球層面?我最初的想法是,這些圓括號使日誌內創建的匿名函數。
JavaScript使用詞法作用域,因此它是定義函數的地方,用於決定您有權訪問哪些變量名稱。閱讀「詞彙範圍」與「動態範圍」。 – folkol
那麼在這種情況下,它在哪裏坐着詞法呢? – RunningFromShia
單從這段代碼我們無法判斷。但至少不是在「功能日誌」裏面。 – folkol