Показать сообщение отдельно
  #9 (permalink)  
Старый 24.10.2014, 23:31
Аспирант
Отправить личное сообщение для Voronar Посмотреть профиль Найти все сообщения от Voronar
 
Регистрация: 15.02.2013
Сообщений: 55

Сообщение от 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.
Ответить с цитированием