为什么Javascript函数`arguments`不是node.js中Array的一个实例?

最近看了很多NodeJS和Javascript代码,看起来参数不是Array的一个实例,但仍然像一个一样,所以人们做的东西像Array.prototype.slice.call(arguments, ...)[].slice.call(arguments) ,它增加了冗长,增加了新手理解等障碍。是否有一个原因,为什么参数不是一个数组的实例,或者这只是一个坏的部分?

NOarguments是一个独立的对象,恰好有一个length属性和使用[]来索引它的能力。 但除此之外,它只是一个对象,而不是一个Array对象。

是的,这确实是JavaScript的一个不好的部分。