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) Constructor Functions and Prototypes Adding a Prototype

Aaron HARPT
Aaron HARPT
19,845 Points

Code challenge question

I am having trouble with the following code challenge:

We're adding a new method to every instance when a Monster is created. Use a prototype instead for the takeDamage method.

monster.js
function Monster(name) {
  this.name = name;
  this.health = 100;
  Monster.prototype.takeDamage = function (){
    this.health--;
  }
}

3 Answers

Here's the passing code:

function Monster(name) {
  this.name = name;
  this.health = 100;
}

Monster.prototype.takeDamage = function (){
    this.health--;
  }

So, you write the Monster() function so it can create the monster with all it's basic properties.

Then in a separate step, you add method(s) you want your Monster(s) to have, by adding them to the prototype.

The prototype then says "All new Monster(s) get this method".

Darryn Smith
Darryn Smith
32,043 Points

You're doing great, the only catch is, you want to take the prototype function you wrote and move it OUTSIDE of the main monster constructor.

function Monster(name) { this.name = name; this.health = 100; };

Monster.prototype.takeDamage = function (){ this.health--; }