У меня есть пара вопросов о коде.Конструкторы и как работает вызов в Javascript
1) В конструкторе студента Person.call (this, firstName) дать студенту доступ к методам человека? или он меняет контекст ?
2) Предполагаю, что Student.prototype = Object.create (Person.prototype) дает нам возможность использовать методы и свойства человека?
Мне сложно понять метод вызова.
var Person = function(firstName) {
this.firstName = firstName;
};
Person.prototype.walk = function(){
console.log("I am walking!");
};
function Student(firstName, subject) {
Person.call(this, firstName);
this.subject = subject;
};
Student.prototype = Object.create(Person.prototype); // See note belo
Student.prototype.constructor = Student;
Student.prototype.sayHello = function(){
console.log("Hello, I'm " + this.firstName + ". I'm studying "
+ this.subject + ".");
};
Спасибо adeneo отличное объяснение! У меня еще несколько вопросов. Если я создам var student1 = new Student («john», «физика»); Когда объект student1 создается, мы вызываем функцию человека, проходящую в 'this' (student1) и имя john. Таким образом, мы вызываем функцию вне объекта person1, что позволяет нам совместно использовать функции – stckpete