JavaScript中的apply函数

JavaScript中的apply函数,javascript,function,apply,spidermonkey,Javascript,Function,Apply,Spidermonkey,我正在学习JavaScript,目前我正试图找出原因(在中) 返回预期的[1,2],但 Array.concat.apply([1], [[2]]) 返回[2]而不是[1,2] 有人能提供一个很好的解释吗?[].concat是Array.prototype.concat Array.concat是Firefox特有的静态方法,它连接一个或多个数组并忽略其此参数。什么是Array.prototype.concat.apply([1],[2]])返回的?您正在使用哪个浏览器Array.concat

我正在学习JavaScript,目前我正试图找出原因(在中)

返回预期的
[1,2]
,但

Array.concat.apply([1], [[2]])
返回
[2]
而不是
[1,2]


有人能提供一个很好的解释吗?

[].concat
Array.prototype.concat


Array.concat
是Firefox特有的静态方法,它连接一个或多个数组并忽略其
参数。

什么是
Array.prototype.concat.apply([1],[2]])
返回的?您正在使用哪个浏览器
Array.concat
在Chrome中不存在。Firefox在数组原型上有一个“concat()”(但在数组构造函数对象上没有)。奇怪的是,它允许您运行第二条语句,它应该是
(新数组)。concat.apply([1],[2]])Array.concat
==>
函数concat(){[native code]}
这一定是答案,但奇怪的是,MDN没有记录该方法:-)首选哪种样式,
[].concat
Array.prototype.concat
?@eljenso:
[]
更短,但它会创建一个额外的数组实例。
Array.prototype
更长但更快。您可以选择。
Array.concat.apply([1], [[2]])