Ниже приведен рабочий пример, показывающий, как работает прототип Javascript. Поэтому из моего понимания просто экземпляр клиента унаследовал функцию прототипа Person.javascript прототипическое наследование путаницы
var Person = function (name) {
this.name = name;
};
Person.prototype.getName = function() {
return this.name;
};
var john = new Person("John");
alert(john.getName());
Person.prototype.sayMyName = function() {
alert('Hello, my name is ' + this.getName());
};
john.sayMyName();
var Customer = function (name) {
this.name = name;
};
Customer.prototype = new Person();
var myCustomer = new Customer('Dream Inc.');
myCustomer.sayMyName();
Customer.prototype.setAmountDue = function (amountDue) {
this.amountDue = amountDue;
};
Customer.prototype.getAmountDue = function() {
return this.amountDue;
};
myCustomer.setAmountDue(2000);
alert(myCustomer.getAmountDue());
Но одна вещь, ошибка меня в том, что почему автор делать прототип функции getAmountdue? он просто возвращает this.amountDue.
Потому что он получил образование в качестве программиста на Java. Это метод [getter] (https://en.wikipedia.org/wiki/Mutator_method). – Bergi
Я думаю, что трудно сказать, почему автор сделал это. Я рекомендую вам прочитать эту ссылку http://phrogz.net/JS/classes/OOPinJS2.html –