Создавать модуль javascript только один раз - PullRequest
1 голос
/ 30 мая 2010

Я следую шаблону модуля, в котором я создаю экземпляры компонентов, однако большую часть времени компонент будет создаваться только один раз (пример: система комментариев для статьи).

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

Вот схема, которой я следую:

  ApplicationNamespace.Classname = function() {
      // constructor    
      function privateFunctionInit() {
          // private
      }
      this.privilegedFunction = function() {
          // privileged
          privateFunction();
      };
   privateFunctionInit()
  };
  ApplicationNamespace.Classname.prototype = {
      Method: function(){}
  }
  var class = new ApplicationNamespace.Classname();

Как вы думаете, неправильный подход или это хорошо?

1 Ответ

2 голосов
/ 30 мая 2010

Я не думаю, что с этим что-то не так. У меня на работе много классов JS в кодовой базе, использующей этот шаблон. Даже если вы по существу используете класс как одноэлементный, структурирование его таким образом позволяет вам с легкостью создавать больше экземпляров в будущем, если вам когда-либо понадобится.

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

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

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