Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript Object-Oriented JavaScript (2015) Prototypal Inheritance Setting Up the Prototype Chain

Aaron HARPT
Aaron HARPT
19,845 Points

Code challenge question

I am having trouble with the following code challenge:

You're going to modify the Teacher code to inherit from the Person. First, in the Teacher constructor function, call the Person constructor, using the call method and pass in the common attributes.

person.js
function Person(firstName, lastName) {
  this.firstName = firstName;
  this.lastName = lastName;
}

Person.prototype.fullName = function() {
 return this.firstName + " " + this.lastName; 
};
teacher.js
function Teacher(firstName, lastName, roomNumber) {
  this.firstName = firstName;
  this.lastName = lastName;
  this.room = roomNumber;
}

1 Answer

Andrew Kiernan
Andrew Kiernan
26,892 Points

Hi Aaron!

You want to call the Person constructor, using .call. When you do that you can pass in those constructor arguments and they will be applied to the Teacher subclass. So you can do:

function Teacher(firstName, lastName, roomNumber) {
    Person.call(this, firstName, lastName);
}

With that done, you only need to set the roomNumber explicitly, as firstName and lastName are set by the Person.call method.

Hope that helps! Let me know if you have any questions.

-Andrew