0
我想知道Javascript如何維護一個全局命名空間。它是否有鏈接器鏈接所有與該頁面相關的JS並且維護一個單一的全局名稱空間?Javascript如何維護一個全局命名空間
我想知道Javascript如何維護一個全局命名空間。它是否有鏈接器鏈接所有與該頁面相關的JS並且維護一個單一的全局名稱空間?Javascript如何維護一個全局命名空間
這裏要理解的重要一點是,頁面中的所有JavaScript(無論是內嵌的還是通過<script src="...">
拉入的)基本上都是在同一個VM中連接並執行的。沒有必要「維護單個全局名稱空間」,因爲所有代碼都在同一地點進行評估並共享相同的全局對象window
。
請記住,儘管現代引擎do compile JS to native code在內部,但JS不是像C這樣的編譯語言。因此,沒有鏈接器。
您可能想要了解的虛擬機概念稱爲context。 V8 VM支持使用一個全局對象以及使用不同全局對象的代碼的運行代碼。這允許在中運行的代碼獲取其自己的全局對象,但仍然可以從父頁面的上下文訪問和調用方法。
閱讀此:http://stackoverflow.com/questions/9773964/understanding-the-javascript-global-namespace-and-closures –
這應該有所幫助:http://stackoverflow.com/questions/9773964/understanding- -javascript-global-namespace-and-closures – karthikr
保持每個腳本元素完全獨立並不難嗎?尤其是因爲他們都需要與同一個DOM進行交互。 – Quentin