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 Working with Classes in JavaScript Instantiating a Pet Object

Can a class only have one constructor?

Instantiating the class here seems to pass arguments immediately to a constructor function nested inside of it. If a class had multiple constructors, what would calling them look like? Or are classes themselves limited to one constructor?

5 Answers

Steven Parker
Steven Parker
231,271 Points

According to MDN (my favorite go-to resource):

Having more than one occurrence of a constructor method in a class will throw a SyntaxError error..

So yes, a class can only have one constructor.

Kevin Gates
Kevin Gates
15,053 Points

Anthony Kelly -- this should be marked as the Best Answer as Steven gave you the answer and linked to a resource for further study. :)

But, what happend when I have a constructor with parameters and the default constructor,without parameters.?

Steven Parker
Steven Parker
231,271 Points

You might be thinking of another language (like C#, which supports method overloading). but In JavaScript, you have only one constructor. If it takes parameters, then to be able to create an instance without arguments you must supply default values for them. For example:

  constructor(name = "unknown", age = 0) {
hector alvarado
hector alvarado
15,796 Points

I think that in every lenguaje classes only have one constructor. When we instanciate the object there would be needed tho choose how to instanciate, and thats kinda useless, if two objects are really similar then might just make a class to cover them both.

Steven Parker
Steven Parker
231,271 Points

I mentioned C# specifically because you can have several constructors in a class, as long as they each have a different signature (number and type of arguments).

Ahh, that's good to know! How do you set default values in side the constructor?

Steven Parker
Steven Parker
231,271 Points

There's an example in the comment I left for Franklin on Oct 23.

oh thank you for clarify sir.