當我用下面的代碼:JavaScript中的範圍鏈是什麼?
function a(){
var q = 1;
function b(){
console.log(q);
}
b();
}
var q= 2;
a();
它給我輸出1 但是當我用下面的代碼:
function b(){
console.log(q);
}
function a(){
var q = 1;
b();
}
q= 2;
a();
輸出爲2 。當我使用下面的代碼:
function a(){
function b(){
console.log(q);
}
b();
}
var q= 2;
a();
再次我輸出我知道那是什麼,因爲我在谷歌搜索,但沒有完全瞭解相關的作用域鏈。
。請使用代碼標籤在寫這個問題的部分代碼,使EASI呃閱讀代碼。 – ssharma
你已經過分簡化了每個例子,因爲它們中沒有一個產生任何輸出,因爲'b()'從來沒有被調用過。請創建一個[mcve],它實際上再現了您的問題 – charlietfl
抱歉,我現在已更正它 – Aniket