第一次和第二次写的措辞有什么区别

时间:2012-02-21 03:30:52

标签: javascript

  

可能重复:
  [].slice or Array.prototype.slice

第一个

(function() {
    var slice = Array.prototype.slice,
        aArguments = slice.apply(arguments);
})(10, 20, 30);

第二个

(function() {
    var aArguments = [].slice.apply(arguments);
})(10, 20, 30);

有什么区别?

只有速度?

3 个答案:

答案 0 :(得分:2)

在第二个版本中,您正在创建一个Array对象。

在第一个版本中,没有创建其他对象 - 您直接引用Array原型上的函数并使用它。

答案 1 :(得分:1)

获得相同.slice()方法的不同方法。所有Array.prototype个对象都可以使用Array上的方法。

  • 第一个需要更多对象属性查找。

  • 第二个需要创建一个新的数组

性能考虑可能会因实现而异,并且可能很小。


请注意,如果您想要所有参数,也可以执行此操作...

var aArguments = Array.apply(null, arguments);

答案 2 :(得分:-1)

性能差异可以忽略不计。

如果您想确切了解性能差异,请查看this performance test的结果,并根据需要自行运行。