Удаление зависимости от класса в JavaScript - PullRequest
0 голосов
/ 14 февраля 2011

У меня есть класс, который создает Custom Selectboxes.он работает нормально, и я хочу, чтобы этот класс был более общим.Эти окна выбора также имеют прослушиватель событий «onchange».

Теперь перед вызовом метода onchange я хочу выполнить несколько сложных тестов.И эти тесты определены в другом классе.

Чтобы добиться универсальности, я не хочу, чтобы мне нужно было инициализировать новые классы в классе SelectBox.Как лучше всего решить эту проблему?А данные, необходимые для проведения тестов, находятся в классе SelectBox.

Спасибо

1 Ответ

0 голосов
/ 14 февраля 2011

Что ж, если эти функции не зависят от переменных, специфичных для новых инициализированных объектов, то вы можете просто превратить эти функции в общедоступные статические

var AnotherClass = (function(){
  // this is a public static method
  this.complexTask = function(){ alert('I am too complex for my shirt'); }

  return function(){
    // initialization-dependent-stuff
  }
})();

var SelectBoxes = (function(){
   return function(){
      this.onChange = function(){
         AnotherClass.complexTask();
      }
   }
});

, выполнив это, вы нене нужно ничего инициализировать, плюс вы можете использовать свои функции так, как вам хочется.

В качестве альтернативы, если вы не можете использовать общедоступные статические методы, вам следует рассмотреть возможность передачи экземпляра этого класса в качестве параметра,хотя вышеописанный метод предпочтительнее

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