powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JavaScript namespacing pattern
4 сообщений из 4, страница 1 из 1
JavaScript namespacing pattern
    #38114628
scymaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в 1:32 родилось в моей голове вот что:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
var modules = {};

function add(module) {
    modules[module.name] = module.definition;
    return this;
}

function get(moduleName) {
    return modules[moduleName];
}

add({name: 'test_jQuery', definition: jQuery});

console.log(get('test_jQuery'));
console.log(modules)

var f = get('test_jQuery');

console.log(f(document));



все сработало так как и ожидалось...

но вот эти два метода они же в window все равно находятс....
как этого избежать?
...
Рейтинг: 0 / 0
JavaScript namespacing pattern
    #38114638
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scymaksно вот эти два метода они же в window все равно находятс....
как этого избежать?глобальные объекты все равно будут.

исключение - если весь код находится внутри
Код: javascript
1.
2.
3.
(function() {

})();

тогда можно обойтись локальными переменными через механизм замыканий.

а так - посмотри, например, ExtJS - там всё находится внутри объекта Ext
...
Рейтинг: 0 / 0
JavaScript namespacing pattern
    #38114948
scymaks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меч,

ну так у них все равно ExtJS в window же находится...

или вы предлогаете вот так делать:

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
<!DOCTYPE HTML>
<html>
<head>
   ....
   <script type="text/javascript">
   var APP = (function() {
       var modules = {};

       function add(module) {
          modules[module.name] = module.definition;
          return this;
       }

       function get(moduleName) {
          return modules[moduleName];
       }

       add({name: 'test_jQuery', definition: jQuery});

       return {
          add: add,
          get: get
       };
   })();
   </script>
   ...
</head>
<body>
   ...
    <script type="text/javascript">
        var f = APP.get('test_jQuery');
        console.log(f(document));
    </script>
   ...
</body>
</html>
...
Рейтинг: 0 / 0
JavaScript namespacing pattern
    #38115374
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scymaksну так у них все равно ExtJS в window же находится...да, о чем я и говорил - как минимум 1 глобальный объект, в котором размещаются все свои.


scymaksили вы предлогаете вот так делать:ну да, норм. вариант.
потом можно будет в АРР добавлять другие модули.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JavaScript namespacing pattern
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]