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

[SOLVED] Please help, I'm afraid I don't quite understand the prototype method.

So I must just be missing something because of right now I don't understand at all what the prototype method is doing or how to create one. Can someone take a look at my work and see what I am doing wrong?

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

1 Answer

Jennifer Nordell
seal-mask
STAFF
.a{fill-rule:evenodd;}techdegree
Jennifer Nordell
Treehouse Teacher

We want to avoid creating a function every single time Monster is called. So we make the prototype. And we do this like this:

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

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

Now the monster will still take damage, but it doesn't need to create a new function every time it does :) Hope that clears things up!