我同意使用名稱空間對於JavaScript庫是必不可少的,但那些駐留在script
標記中的HTML文件中的函數又如何呢?基本上這些都是「本地」功能,永遠不會與任何其他頁面共享。你們還爲這些人使用命名空間嗎?如果是這樣,你是否使用與共享自定義庫相同的名稱空間?本地JavaScript函數是必須的命名空間嗎?
5
A
回答
1
您不需要命名空間,因爲正如您所說,沒有潛在的命名衝突。
唯一的潛在衝突是,如果您導入的庫不是而是使用了命名空間,並且它引入了一個與您在腳本文件中放置的名稱衝突的變量。但是如果你在所有的庫中都遵循命名空間的習慣,那麼它並不重要。
2
我想說,本地命名空間可以幫助防範任何可能的與第三方JavaScript庫的衝突,但它不一定是必要的。
1
首先。將JavaScript放在HTML中不是你應該做的事情。 Javascripts應該在單獨的文件(S)。加載程序明顯例外,如head.js或類似的,如果你使用一個。
我個人認爲沒有必要命名空間本地腳本。從未發生過我寫過的一個腳本與我用過的任何插件相沖突。
1
雖然它可能不是必要的,但真的沒有理由不命名空間這些。它只能幫助防止問題。
下面是關於命名空間的不同的方法對腳本吸毒者的好文章: http://msdn.microsoft.com/en-us/scriptjunkie/gg578608.aspx
1
它必須依賴於地方的腳本嵌入在HTML的來源。如果它在代碼控制本地腳本的環境中會知道對方在做什麼,那麼我認爲不需要命名空間。
如果另一方面,腳本將運行在類似於CMS的環境中,那麼可能會有各種服務器端插件暴露本地javascript,而客戶端端編碼器無需理解代碼的複雜性。即使在那裏,如果該代碼是全部命名空間的,那麼你應該沒問題。無意中忘記一個var
關鍵字可以破壞名稱空間。
總而言之,命名空間並不會傷害事物,並不那麼難。當它沒有與html混合時,維護和思考javascript會容易得多。
相關問題
- 1. 是否必須很難在命名空間中重載函數?
- 2. 我必須在svcutil.exe命令中包含xml名稱空間嗎?
- 3. JavaScript函數創建命名空間
- 4. XML命名空間是必需的?
- 5. System.Collections是「System命名空間的命名空間」嗎?
- 6. PHP的致命錯誤:函數名必須是
- 7. 如何運行的JavaScript函數是一個命名空間
- 8. 從匿名命名空間調用命名命名空間中的函數
- 9. 名稱必須是名稱空間名稱Visual Studio錯誤
- 10. 致命錯誤函數名稱必須是一個字符串
- 11. 致命錯誤:函數名稱必須是字符串
- 12. PHP致命錯誤:函數名必須是錯誤
- 13. 致命錯誤:函數名必須是221行上
- 14. 致命錯誤:函數名稱必須是字符串
- 15. 命名空間內的匿名函數
- 16. Javascript命名空間
- 17. 項目的默認XML名稱空間必須是MSBuild XML名稱空間
- 18. 如何在多個命名空間中命名空間函數?
- 19. Javascript命名空間 - 函數之間的變量交換
- 20. 的Javascript:命名空間
- 21. Javascript中的命名空間
- 22. 內聯命名空間是否必須始終具有這樣的資格?
- 23. 錯誤] s4s-elt-schema-ns:'綁定'的命名空間必須來自模式命名空間'http://www.w3.org/2001/XMLSchema'
- 24. Javascript命名空間 - 這是一個很好的模式嗎?
- 25. 致命錯誤:命名空間聲明語句必須是腳本中的第一條語句
- 26. php中的命名空間函數
- 27. C++命名空間....匿名命名空間是合法的?
- 28. 的Javascript Onready函數調用的命名空間功能
- 29. 繼承命名空間javascript
- 30. JavaScript多個命名空間
關於將所有JavaScript代碼放在.js文件中,這是不是說幾乎每個獨立的HTML文件都會有自己的.js文件?這不是維修問題嗎? – 2011-02-08 02:02:07