Reputation: 907
I've found that some functions like concat()
push()
every()
both exist in Array
and Array.prototype
(with firefox 57.0.1 console)
It's confusing since prototype methods exist in Array
.
Additionally, where does staic method(Array.from()
, Array.isArray()
etc) exists in?
I think I've understood concepts of javascript prototype to some extent, so what I'm curious about is why prototype methods(concat()
push()
...) apear both in Array
and Array.prototype
Upvotes: 11
Views: 1258
Reputation: 339816
Firefox's Array
function appears to have additional (non-conformant) "static" methods that replicate the prototype methods except that they take the array as the first parameter instead of via the implicit this
context.
To see those methods and properties of Array
, use:
Object.getOwnPropertyNames(Array)
In Firefox you'll (mostly) see the same list as in your first screenshot. I haven't yet figured out why Array.isArray
is missing in your list, but it does appear in my Firefox 57.
In Chrome you'll only see the ES6 mandated "static" methods (i.e. Array.from
, Array.isArray
, Array.of
) and the standard properties.
Upvotes: 4