Я ищу анализ этого кода, и у меня проблемы. Моя проблема начинается с этой строки. Customer.prototype = new Person();
. Теперь, насколько я знаю. Мы можем добавить некоторые методы к нашим переменным, как это было с Person.prototype.getName
. Отлично, теперь Person
имеет proto
, указывающий на функцию, которая возвращает имя. Итак, что это значит, когда мы делаем Customer.prototype = new Person();
. Означает ли это, что взять все методы и утверждения в Person
и поместить их внутри переменной Customer
?Использование .prototype для добавления метода к переменной
var Person = function(name) {
this.name = name;
};
Person.prototype.getName = function() {
return this.name;
};
var john = new Person("John");
//Try the getter
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());
в ООП TEMS это означает, что Клиент наследует от лица –
не кладите слишком много думал об этом, [это неправильно так или иначе] (http://stackoverflow.com/a/17393153/1048572?Benefits-of -using-Object.create-for-inheritance) – Bergi