Why constructor property return this way?

(123).constructor //return function Number(){[native code]} but typeof(123) //return number I know difference between typeof operator and constructor property but don't understand why the output is like that?!!

4/13/2019 9:33:11 AM


7 Answers

New Answer


1. Constructor is function, (123) belongs to Number class, and (123).constructor is referring to the constructor function of Number. https://www.sololearn.com/learn/JavaScript/2979/ 2. Number is a class. You can use new keyword to create instance of class. Just adding parathesis is calling its constructor function to execute, but the memory is not allocated for a new instance of it.


Thanks all of you ☺


As Gordon said, it refers to the function Number, thus function Number(){[native code]}. You can create a number in these ways, may be more but this is some of the basic ways: new Number(123) Number(123) (123) 123 You can easily use operators like +, - and so on easily on all these like, Number(10)+20 //output 30 Number sure is a class, therefore it has a constructor making the use of the new keyword possible, but it is not required by any means - same applies to the Date class etc. And finally, leaving the Number function empty will return 0.


as Gordon


thank you all


you can easily operators


may be it was due to the difference in the member class