在Javascript中,是否有理由选择
这样:
[].forEach.call(...)
对此:
[].prototype.forEach.call(...)
..?
答案 0 :(得分:1)
第一个更短,因此更容易阅读并可能阻止水平滚动。
第二个是错误的,因为没有[].prototype
(你的意思是[].constructor.prototype
吗?)
第三个是
Array.prototype.forEach.call(...)
这个更直接,理论上更快,因为你得到的第一个是间接的属性,实际上是附加到原型。
答案 1 :(得分:0)
第二个例子不起作用,所以如果我们纠正它......
Array.prototype.forEach.call
现在,如果我们将其与[].forEach.call
进行比较,不同之处在于使用原型版本,您不会创建一次性数组对象。
这在实践中是否有所不同取决于您的具体情况。如果您反复进行数百次或数千次,与直接通过原型调用函数相比,创建这些一次性数组对象可能会导致更高的内存使用量和更慢的GC扫描。