Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Пространство имен (https://javascript.ru/forum/css-html/19069-prostranstvo-imen.html)

_SONY_ 25.07.2011 13:36

Пространство имен
 
Столкнулся с проблемой при изучении JavaScript. Проблема состоит в том, что я совершенно не понимаю тему пространства имен. В книге вроде-бы и написано как создавать, то да сё. Но реальных примеров там нет и как это пространство имен встраивается в страницу не понятно вообще. Прошу помочь вас какой-нибудь ссылкой на материал из этой темы с детальными примерами. Спасибо.

Kolyaj 25.07.2011 13:40

В JavaScript нет пространств имён.

melky 25.07.2011 13:44

это костыли для удобства

Пример: customMethod находится в пространстве имён myNameSp.
var myNameSp = {};

myNameSp.customMethod = function(){};

_SONY_ 25.07.2011 13:45

Наверное я не внятно выразился. Скорее не создание пространства имен, а создание специальных модулей.

Kolyaj 25.07.2011 13:46

А специальными модулями вы что называете?

melky 25.07.2011 13:50

О_О

да Господи Иисусе

не люблю так писать.

что вы имеете в виду под "модулями" ? я тоже не понял.

Супер магию ?
var myNameSp = {
          import : function (name, method ) { myNameSp[ name ] = method; }
};

function myMethod() {...};

myNameSp.import ( "myMethod", myMethod );

....
myNameSp.myMethod();

_SONY_ 25.07.2011 13:50

Ну вот например: модуль Class.js
var Class = {};
Class.define = function(date) {};

melky 25.07.2011 13:56

сверху пример кода

если разделить его так :

первый файл - ядро

var myNameSp = {
          import : function (name, method ) { myNameSp[ name ] = method; }
};


второй файл - дополнения. "модули"

function myMethod() {...};

myNameSp.import ( "myMethod", myMethod );


третий файл - использование

myNameSp.myMethod();


... не это ли вы имели в виду?

_SONY_ 25.07.2011 13:58

Сам толком понять не могу. К примеру: Модуль вспомогательных функций для работы с классами

melky 25.07.2011 16:39

не забивай себе голову :)

я замыкание три дня не понимал.


Часовой пояс GMT +3, время: 10:37.