Никогда не интересовались почему все эти многочисленные javascript-библиотеки не перезаписывают функции и методы друг друга, даже когда используются одновременно?
Они стараются быть "дружелюбными соседями" используя:
На данный момент использование «пространств имен» не очень распространено в жаваскрипте. Не хочу никого обвинять, ведь большинство использует javascript для базовых проверок и несложного client-side программирования. Но сейчас, когда Веб 2.0 распространяется быстрее чем когда либо, я думаю самое время начать использовать NameSpacing в своем коде. Это критично когда вы пишете библиотеку, которая будет использоваться другими разработчиками. "Пространства имен" исключают проблему дублирования имен функций, например как создание пакетов в Java (packaging) или namespacing в C#.
Создание пространства имен может быть реализовано очень просто, без побочных эффектов и легко читаемым. Я понимаю, что "легкая читаемость" вашего кода во многих случаях не будет являться определяющим фактором. Однако, в общем она принесет много пользы.
Наверное, самый лучший способ создания обьекта в приложении представлен ниже:
var NameSpaceName = function() {
return {
YourMethod1 : function() {
// your function implementation
},
YourMethod2: function() {
// your function implementation
},
YourMethod2: function() {
// your function implementation
}
// you can declare variables and private functions as well!
var xyz;
function alertUser()
{
alert('Hey Dude!');
}
};
}();
Есть много разных способов применять такой подход. Используйте на здоровье!
Оригинал Javascript NS
Перевод 3hrek
Комментарии
Спасибо большое, пригодилось)
Отправить комментарий