soonoo
soonoo

Reputation: 907

What is the difference between Array.function and Array.prototype.function?

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?

enter image description here


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

Answers (1)

Alnitak
Alnitak

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

Related Questions