If I return some value or object in constructor function, what will the var get?
function MyConstroctor() { //what in case when return 5; //what in case when return someObject; } var n = new MyConstroctor();
what n will get in both cases?
Actually its a quiz question, what will be the answer?
What is returned from a custom object constructor?
a)The newly-instantiated object
b)undefined - constructors do not return values
c)Whatever is the return statement
d)Whatever is the return statement; the newly-instantiated object if no return statement
The constructor returns the this
object.
function Car() { this.num_wheels = 4; } // car = { num_wheels:4 }; var car = new Car();
By the Javascript spec, when a function is invoked with new
, Javascript creates a new object, then sets the "constructor" property of that object to the function invoked, and finally assigns that object to the name this
. You then have access to the this
object from the body of the function.
Once the function body is executed, Javascript will return:
ANY object if the type of the returned value is object
:
function Car(){ this.num_wheels = 4; return { num_wheels:37 }; } var car = new Car(); alert(car.num_wheels); // 37
The this
object if the function has no return
statement OR if the function returns a value of a type other than object
:
function Car() { this.num_wheels = 4; return 'VROOM'; } var car = new Car(); alert(car.num_wheels); // 4 alert(Car()); // No 'new', so the alert will show 'VROOM'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With