У меня есть некоторое общее представление о том, почему мы используем прототипное наследование, делая некоторые вещи в моем приложении, я понял, что вы не сможете получить доступ к функции, если добавите функцию с тем же именем в ее прототип.Почему это так, вот мой код:
function person(firstname, lastname) {
this.firstname = firstname,
this.lastname = lastname,
this.greet = function() {
console.log('hey there', this.lastname + ' ' + this.firstname);
}
}
var jane = new person('jane', 'Doe');
jane.greet();
var john = new person('john', 'smith');
john.greet();
function person(firstname, lastname) {
this.firstname = firstname,
this.lastname = lastname
}
person.prototype.greet = function() {
console.log('hey there', this.lastname + ' ' + this.firstname);
}
var jane = new person('jane', 'Doe');
jane.greet();
var john = new person('john', 'smith');
john.greet();
Выдается ошибка:
"test.js:10
jane.greet();
^
TypeError: jane.greet is not a function"