Вот есть один код
function inherit(proto) {
function F() {}
F.prototype = proto;
var object = new F;
return object;
}
Вот второй:
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 = proto;
, а во втором:
F.prototype = Parent.prototype
В чем разница в этих подходах.
Я до сих пор не могу понять почему мы пишем
F.prototype = Parent.prototype
, то есть мы говорим, я хочу объекту F поставить родителя, который будет родителем Parent. Зачем для F делать родителем родителя Parent. По хорошему счету Parent.prototype для F будет дедушкой. С моим классический пониманием ООП не могу этого понять, а как данность, пока не пойму не приму(