我從大衛馬克閱讀下面的分析對JS框架「煎茶」的屬性有什麼區別:https://gist.github.com/3279190,並在那裏,他指出...有一個全局變量和全局對象
他們想要的是一個全局變量,但他們最終成爲了全局對象的一個屬性。根據規範和(和實施歷史),兩者之間有足夠的區別,需要注意不要混淆(如此處所述)。
...但據我知道有沒有var my_global = 123;
之間的任何差別(在瀏覽器環境)window.my_global = 123;
(在例子中,我認爲環境是一個瀏覽器 - 因此使用window
,但我可以用this.my_global
來代替,因爲當在不同的環境中運行時,全局對象顯然不同)。
但是忽略這個小的差異是爲全局對象分配一個屬性和創建一個全局變量有區別嗎?我認爲不是,創建一個全局變量只是將屬性賦值給全局對象的另一種方法。
我相信如果他們有一個ID爲「my_global」的元素,那麼顯然可能會導致JavaScript引用正確的問題,但在某些瀏覽器中可能會出現問題,但我不確定該如何/是什麼原因問題(例如,爲全局對象分配一個屬性是否會導致元素ID問題發生,還是聲明導致元素ID問題的全局變量?)
有人可以爲我澄清一下嗎?
非常感謝您的回答。我有種想法,當用'var'來聲明vs不是,但不知道'[[Configurable]]'屬性。 – Loktar
我見過的最棒的答案之一。認真。 –