Прежде всего, я пытаюсь использовать поддельные пространства имен в моей JavaScript-программе, например:
// Ish.Com namespace declaration
var Ish = Ish || {};
Ish.Com = Ish.Com || {};
// begin Ish.Com.View namespace
Ish.Com.View = new function() {
var privateVariable;
this.publicFunction = function() {
this.publicFunction2()
};
this.publicFunction2 = function() { ... };
};
Я не без ума от использования this
для вызова других функций, но до недавнего времениСработало.Однако я добавил слушателей событий к некоторым элементам, и они интерпретируют this
как целевой объект.
Я знаю, что могу использовать полное пространство имен вместо this
для вызова функций внутри моих слушателей.(Ish.Com.View.publicFunction2()
), но слушатели часто вызывают одну функцию, которая вызывает другую, и другую.Мне нужно было бы использовать все пространство имен почти при каждом вызове функции.
Как мне заставить пространства имен работать хорошо с прослушивателями событий? Мне также был бы интересен лучший способреализация пространств имен, поскольку использование this.publicFunction2()
неуклюже.
Я очень заинтересован в передовых практиках и изучении того, как написать хорошо спроектированное приложение на JavaScript.Однако о фреймворках не может быть и речи, пока я не получу более глубокое понимание JavaScript.