У меня есть следующий код при создании объекта:
var myObject = {
Init: function() {
// config anything here to initiate this object.
};
}
Где myObject.Init () работает как конструктор класса.Я использую этот метод Init () для обобщения объекта, который должен быть инициирован, в следующем шаблоне фабрики:
window[myObjectName].Init();
myObjectName - это любое имя объекта, который нужно создать.
Затем у меня есть 2-йвыбор создания объекта, для меня гораздо проще фактически превратить Init () в некий конструктор, подобный приведенному ниже:
var myObject = function() {
// config anything here to initiate this object.
}
Используя приведенный выше код, я могу просто создатьобъект, подобный следующему:
window[myObjectName]();
и практически уменьшает код myObject при подключении к нему Init () (и любого другого объекта, который я бы сделал на фабрике).
Однако 2-йя обнаружил недостаток выбора, заключающийся в том, что я не могу использовать this
внутри объекта, который я на самом деле должен явно использовать myObject
для вызова вещей внутри.Например:
var myObject = function() {
myObject.doSomething(); // instead of this.doSomething();
}
Что меня беспокоит относительно ссылки на переменную / объект (пожалуйста, исправьте меня, если я ошибаюсь).
Любая помощь в преимуществах и недостатках этих выборов?какой из этих вариантов вы предпочитаете или можете предложить лучшее решение?
Спасибо.