Я пытаюсь понять методы вызова методов-конструкторов и прототипов в JavaScript.Составить родительский конструктор и прототип из дочернего объекта
Вот моя попытка:
function A() {
this.getId = function() {
console.log('A constructor - getId');
}
}
A.prototype.getId = function() {
console.log('A prototype - getId');
}
function B() {
A.call(this);
this.getId = function() {
console.log('B constructor - getId');
}
}
B.prototype = Object.create(A.prototype);
B.prototype.constructor = B;
B.prototype.getId = function() {
console.log('B prototype - getId');
}
var p = new A();
var q = new B();
p.getId()
//A constructor - getId
q.getId()
//B constructor - getId
p.constructor.prototype.getId()
//A prototype - getId
q.constructor.prototype.getId()
//B prototype - getId
ли последние два способа является правильным способом для вызова методов прототипа?
Как я могу вызвать родительский конструктор и методы прототипа из дочернего объекта q?
помните о своих Ps и Qs, вы переопределяете эти методы, когда идете вперед. – dandavis
@ dandavis Конечно, я использовал его для простоты здесь. – Yogesh
в общем, вам не нужно стремиться к высокому или низкому, красота прототипала заключается в том, что вы можете притворяться, что все это собственная собственность/метод. вам не нужна связь между ними, чтобы добиться повторного использования, и на самом деле ссылка сделает ее неоднозначной и запутанной. вы можете просто сказать B.prototype.getId.call (A) или наоборот из любого места. – dandavis