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.

Anthony Kelly
15,649 PointsCan 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
216,768 PointsAccording 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.

Franklin Rony Cortez Barrera
3,065 PointsBut, what happend when I have a constructor with parameters and the default constructor,without parameters.?

Steven Parker
216,768 PointsYou 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
15,784 PointsI 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
216,768 PointsI 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).

Tobiasz Gala
Full Stack JavaScript Techdegree Student 23,517 PointsJavaScript does not support constructor overloading. You can set default values if you don't need all options.

Francisco Ortiz
2,670 PointsAhh, that's good to know! How do you set default values in side the constructor?

Steven Parker
216,768 PointsThere's an example in the comment I left for Franklin on Oct 23.

Franklin Rony Cortez Barrera
3,065 Pointsoh thank you for clarify sir.
Kevin Gates
14,855 PointsKevin Gates
14,855 PointsAnthony Kelly -- this should be marked as the Best Answer as Steven gave you the answer and linked to a resource for further study. :)