简体   繁体   中英

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?

在此处输入图片说明


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

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 (ie Array.from , Array.isArray , Array.of ) and the standard properties.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM