Я искал это как сумасшедший, и я до сих пор не понимаю.Цепочка Javascript Конструкторы
Если я создал дочерние и родительские объекты, такие как следующие:
var Child = function(name, toy)
{
this.toy = toy;
Parent.call(this, name);
}
var Parent = function(name)
{
this.name = name;
}
//Child.prototype = new Parent();
я не нужно раскомментировать эту строку так, чтобы иметь возможность получить следующий результат:
var bobby = new Child("Robert", "Lego");
document.write(bobby.name + " " + bobby.toy);
//Result: Robert Lego
Мой (возможно неправильно) понимание того, что линии
Child.prototype = new Parent();
устанавливает прототип того, что создается конструктором Child, чтобы быть тем, что создается конструктором родителя. Следовательно, без этой линии, линии
Parent.call(this, name);
(который я считаю, вызывает конструктор Родитель, установив этот контекст ребенка, и передает имя) не должны реально работать.
Что не так с моим пониманием?
Заранее благодарим за любую помощь! :)
Почему вы не верите 'Parent.call (это, имя);' должен работать? Он просто вызывает функцию «Родитель», которую вы определяете. –