@lotrop

ООП javascript зачем нужна эта строчка?

Объясните, пожалуйста, зачем в этой функции
function extend(Child, Parent) {
	var F = function() { }
	F.prototype = Parent.prototype
	Child.prototype = new F()
	Child.prototype.constructor = Child
	Child.superclass = Parent.prototype
}

F.prototype = Parent.prototype?
Почему не делается F.prototype = Parent? Я же хочу, чтобы мои предком был Parent, а не его предок?
  • Вопрос задан
  • 735 просмотров
Решения вопроса 2
@Kraky
https://learn.javascript.ru/class-inheritance
Тут есть как раз то о чем вы спрашиваете
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@GreatRash
Потому что в Parent могут быть статические методы, которые в чилде нафиг не упёрлись.

var Parent = (function() {
  // конструктор
  function Parent() {}

  // статический метод
  Parent.staticMethod = function() {
    alert(1);
  };

  // обычный метод
  Parent.prototype.publicMethod = function() {
    alert(2);
  };

  return Parent;
}());

// в Child.prototype должен попасть только publicMethod
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы