Пространство имен Javascript и приватные модули - PullRequest
0 голосов
/ 07 декабря 2011

Это вопросы JS для новичков, я работаю с родительским пространством имен Base и включаю весь свой код в это пространство имен.

file model.js

 Base = {}

 Base.Observer =  {
   method1 : function(){//...},
   method2 : function(){//...}
 };

 Base.Bot = function(name){
  this.name = name;
  this.somefunc = function(){};
 }

file Presenter.js

Base.Presenter = {

}

file helper.js

Base.Helper = { };

Теперь моя проблема в том, что я хотел бы сохранить этот модуль закрытым.Без разрешения доступа любого пользователя через любые инструменты браузера, такие как firebug.Так что я мог думать только о том, чтобы обернуть их в самостоятельно выполняемую анонимную функцию и сделать Base в локальной переменной, что приведет к Presenter.js и helper.js не может получить доступ к пространству имен Base .

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

Спасибо

1 Ответ

1 голос
/ 07 декабря 2011

Так что я мог думать только о том, чтобы обернуть их в самозаполняющуюся анонимную функцию и сделать Base локальной переменной

Это обычный подход

что приведет к тому, что Presenter.js и helper.js не смогут получить доступ к пространству имен Base.

Функция должна return Base;, которую вы затем назначаете глобальному.

См шаблон модуля

...