Reputation:
I wanted to see the real type of []
.
I always thought that i can use the apply method or the constructor .
so i tried :
[].constructor
->(showed me) function Array() { [native code] }
and
[].constructor.constructor
->(showed me) function Function() { [native code] }
and
Object.prototype.toString.apply([])
->(showed me) "[object Array]"
questions
1) Whom to believe ?
2)why line 2 is different ?
Upvotes: 2
Views: 93
Reputation:
1) Whom to believe ?
All of them. They're all correct
2) why line 2 is different ?
Because [].constructor
is a function, and the .constructor
of a function is the Function
constructor.
The last line is giving you the internal [[Class]] property of the object. It is only accessible by setting the object as the context of the generic toString()
method, which is only available on Object.prototype
.
Upvotes: 2