为什么Javascript函数`arguments`不是node.js中Array的一个实例?
最近看了很多NodeJS和Javascript代码,看起来参数不是Array的一个实例,但仍然像一个一样,所以人们做的东西像Array.prototype.slice.call(arguments, ...)
或[].slice.call(arguments)
,它增加了冗长,增加了新手理解等障碍。是否有一个原因,为什么参数不是一个数组的实例,或者这只是一个坏的部分?
NO 。 arguments
是一个独立的对象,恰好有一个length
属性和使用[]
来索引它的能力。 但除此之外,它只是一个对象,而不是一个Array
对象。
是的,这确实是JavaScript的一个不好的部分。