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

vishal gupta
vishal gupta
4,920 Points

You're going to modify the Teacher code to inherit from the Person. First, in the Teacher constructor function, call the

I am getting this error-------You don't need to set the firstName or lastName properties, the Person.call will handle that!................Please help!

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) {
  Person.call(this,firstName,lastName);
  this.firstName = firstName;
  this.lastName = lastName;
  this.room = roomNumber;
}
Teacher.prototype = Object.create(Person.prototype);

You should remove the default code for firstName and lastName in teacher.js because you're calling the same thing from person.js.

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

1 Answer

Jesus Mendoza
Jesus Mendoza
23,289 Points

You don't need to define

this.firstName = firstName;
this.lastName = lastName;

inside the Teacher's object because you are already inheriting those properties from the person object using

Person.call(this, firstName, lastName)

Now, when you create an instance of Teacher, the Person.call function will be executed and you will have firstName and lastName inside your new Teacher instance because you inherited from the Person's object.