为什么Javascript函数“arguments”不是node.js中Array的实例?
最近查看了大量 NodeJS 和 Javascript 代码,似乎arguments 不是 Array 的实例,但其行为仍然像一个实例,因此人们会做类似 Array.prototype.slice.call(arguments, ...) 的事情 code> 或 [].slice.call(arguments)
增加了冗长并增加了新手理解的障碍等。是否有理由解释为什么arguments不是Array的实例,或者这只是一个不好的例子部分?
Looking at a lot of NodeJS and Javascript code recently, it seems arguments is not an instance of Array but still behaves like one, so people do stuff like Array.prototype.slice.call(arguments, ...)
or [].slice.call(arguments)
which adds verbosity and increases hurdle for newbies to understand etc.. Is there a reason why arguments isnt an instance of Array or is this just one those bad parts?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不。
arguments
是一个独立的对象,恰好有一个length
属性,并且能够使用[]
对其进行索引。但除此之外,它只是一个对象,而不是 Array 对象。是的,这确实是 JavaScript 的糟糕部分之一。
NO.
arguments
is a standalone object that just so happens to have alength
property and the ability to use[]
to index it. But otherwise, it is just an object, not anArray
object.And yes, this is indeed one of the bad parts of JavaScript.