Является ли пространство имен обязательным для локальных функций JavaScript? - PullRequest
5 голосов
/ 08 февраля 2011

Я согласен, что использование пространства имен необходимо для библиотек JavaScript, но как насчет тех функций, которые находятся в HTML-файлах в теге script?По сути, это «локальные» функции, которые никогда не передаются другим страницам.Ребята, вы все еще используете пространство имен для них?Если да, то используете ли вы то же пространство имен, что и ваша общая настраиваемая библиотека?

Ответы [ 5 ]

2 голосов
/ 08 февраля 2011

Я бы сказал, что локальное пространство имен может помочь предотвратить любые возможные конфликты со сторонними библиотеками JavaScript, но это не обязательно.

1 голос
/ 08 февраля 2011

Это должно зависеть от того, откуда приходит HTML, в который встраиваются скрипты.Если это в контексте, где код, управляющий локальными сценариями, будет знать о том, что делает другой, то я предполагаю, что нет необходимости в пространстве имен.

Если, с другой стороны, сценарии будут выполнятьсяв контексте чего-то вроде CMS, тогда могут быть различные плагины на стороне сервера, испускающие локальный javascript, без того, чтобы кодер на стороне клиента обязательно понимал тонкости кода.Даже там, если весь этот код пространства имен, то все будет в порядке.Случайное забывание одного ключевого слова var может нарушить пространство имен.

В общем, пространство имен не вредит вещам и не так сложно.Гораздо проще поддерживать и думать о javascript, когда он не полностью смешан с html.

1 голос
/ 08 февраля 2011

Хотя это может и не быть обязательным, на самом деле нет причин НЕ указывать их пространства имен Это может только помочь предотвратить проблемы.

Вот хорошая статья на Script Junkie о различных методах пространства имен: http://msdn.microsoft.com/en-us/scriptjunkie/gg578608.aspx

1 голос
/ 08 февраля 2011

Прежде всего.Размещение javascripts в HTML не то, что вы должны делать.Javascripts должен идти в отдельных файлах.За очевидным исключением загрузчика, такого как head.js или аналогичного, если вы используете его.

Я лично не вижу необходимости в пространстве имен локальных сценариев.Никогда не случалось, чтобы один сценарий, который я написал, столкнулся с любым плагином, который я использовал.

1 голос
/ 08 февраля 2011

Вам не нужно пространство имен, потому что, как вы говорите, нет потенциального конфликта имен.

Единственный потенциальный конфликт - это если вы импортируете библиотеку, которая не не использует пространства имен, и она вводит переменную, которая конфликтует с именем, которое вы поместили в файл сценария. Но если вы следуете практике использования пространств имен во всех библиотеках, это не имеет значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...