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 Create a Constructor

Creating a constructor function

Please I need help with this challenge.

monster.js
function Monster (name) {
this.name = name;
this.health = function (){
var health= new health (100);
}
}

2 Answers

Charles Wanjohi
Charles Wanjohi
9,235 Points

The health is a property that is initialized to 100 which does not require an argument to be passed to initialize it like the name property.The code should thus be like:

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

this.changeHealth=function(num){
this.health+=num;
}
}

Your implementation has the health as a function.In addition, I have added a method implementation (changeHealth)to help you understand how you can use a method to update the value of the health property with some passed argument (num) Hope this helps you out

why doesnt it work like this?

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

this.changeHealth= () =>{ this.health--; } };

Steven Parker
Steven Parker
231,269 Points

The instructions do not ask for any methods (such as "changeHealth") to be added to the class.

Steven Parker
Steven Parker
231,269 Points

The properties in the challenge simply hold values, you won't need to create a method for this challenge.

The instructions say, "Finally, Monsters have a health property.." This will look much like the name property except that "It should be a number not a string." and the number will be a literal instead of an argument.

I'll bet you can get it now without an explicit spoiler.