Array.function和Array.prototype.function有什么区别?

soo*_*noo 10 javascript prototype

我发现一些功能concat() push() every()都存在于ArrayArray.prototype(使用firefox 57.0.1控制台)

由于存在原型方法,因此令人困惑Array.
此外,哪里staic方法(Array.from(),Array.isArray()等)中是否存在?

在此输入图像描述


我想我已经了解的JavaScript原型的概念,在一定程度上,所以我很好奇的就是原型方法(concat() push()...)在apear都ArrayArray.prototype

Aln*_*tak 4

Firefox 的Array函数似乎有额外的(不符合规范的)“静态”方法,它们复制了原型方法,只不过它们将数组作为第一个参数,而不是通过隐式上下文this

要查看 的这些方法和属性Array,请使用:

Object.getOwnPropertyNames(Array)
Run Code Online (Sandbox Code Playgroud)

在 Firefox 中,您(大部分)会看到与第一个屏幕截图中相同的列表。我还没有弄清楚为什么Array.isArray你的列表中缺少它,但它确实出现在我的 Firefox 57 中。

在 Chrome 中,您只会看到 ES6 强制的“静态”方法(即Array.fromArray.isArrayArray.of)和标准属性。