[更新]我得到確認,我不能這樣做。JS範圍訪問
所有:
我非常新的JS範圍,說我有一個函數定義爲:
var scope = "scope inside global";
function out(){
var scope = "scope inside out";
function scopeaccess(){
console.log(scope);
}
scopeaccess();
return scopeaccess;
}
var sa = out();
sa();
輸出都爲「範圍內而外」,我想知道我可以在範圍內訪問「全球範圍內的範圍」嗎?或者我只想確認沒有辦法做到這一點。
感謝
[...]等待。這個評論應該是一個答案。 – Bergi
@Bergi謝謝,只是想確認一下。 – Kuan
雖然在一般情況下給出的答案是正確的,但在某些情況下,包含外部變量的作用域可能會以其他方式捕獲。例如,如果這是直接作爲瀏覽器中的腳本運行的,那麼外層'scope'可以作爲'window.scope'訪問,因爲頂層範圍實際上是'window'對象。依靠這個IMO是不好的做法。 –