Важно что для каждого вызова конструктора не должны создаваться копии методов объекта, только свойства. У меня есть подозрение, что это невозможно, но хотелось бы знать точно.
Комментарий автора: Я знаком с этой идеей. Здесь методы копируются с замыканием при каждом создании объекта. Видимо, иначе действительно невозможно.
1
Полагаю Вы хотите реализовать что-то вроде паттерна Singleton?
Конечно Javascript не поддерживает защищеность свойств и методов.
Попробуйте так:
LaModel.prototype = { initialize: function() { if (LaModel.caller != LaModel.getInstance) { throw new Error("There is no public constructor for LaModel."); }
}
};
LaModel.__instance__ = null; LaModel.getInstance = function () { if (this.__instance__ == null) { this.__instance__ = new LaModel(); } return this.__instance__; }