Сообщение от terminator-101
|
Не знаю, что там в ++, но похоже на это.
function Interface() {};
Interface.prototype.p1 = "property1";
function Class(prop) {if(prop) this.p1=prop};
Class.prototype = new Interface
o1=new Class();
o2=new Class("foo")
alert([o1.p1, o2.p1]);
|
Может я ошибаюсь, но мне кажется, что в этом случае функция(объект), имя которой ты передаёшь как параметр конструктора, будет создаваться для каждого экземпляра (так как ты используешь this), а это слишком затратно.
Я описал своё видение в примере, приведённом мной выше.
Из моего примера видно, что для любого экземпляра Class1 или Class2, этот экземпляр будет иметь только одну реализацию функции в прототипе. То есть получается, что по-любому для каждого наследника нужно создавать экземпляр Interface.