5

是否有任何浏览器限制或任何其他问题阻止我这样做:

fn.apply(this, arguments);

相对:

fn.apply(this, Array.prototype.slice.call(arguments));

我知道这apply需要一个“真”Array作为第二个参数,但传递一个参数集合似乎同样有效。或者...?

4

2 回答 2

4

根据MDN,它“使用给定的 this 值和作为数组(或类似对象的数组)提供的参数调用函数”。鉴于这arguments是一个类似数组的对象,使用它不应该有任何限制。

事实上,描述中明确表示arguments是一个有效参数。

于 2012-10-01T20:17:28.917 回答
0

MDN 上的支持是未知的。

已知只有 Firefox 接受 . 的第二个参数的类数组对象Function.prototype.apply()。在直接通过之前我会谨慎行事arguments

于 2016-05-17T01:08:11.237 回答