Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

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
210,422 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
14,826 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
210,422 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,784 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
210,422 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).

Francisco Ortiz
Francisco Ortiz
2,667 Points

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

Steven Parker
Steven Parker
210,422 Points

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

oh thank you for clarify sir.