我试图找出以下两段代码之间的区别。他们既压扁了一系列子阵列又输出了相同的东西。
Array.prototype.concatAll = function() {
var results = [];
this.forEach(function(subArray) {
results.push.apply(results, subArray);
});
return results;
}; // [ [1,2,3], [4,5,6], [7,8,9] ] -> [1, 2, 3, 4, 5, 6, 7, 8, 9]
和
results
如何运作?为什么"pizza,magic,dogs,hype"
必须写两次?
答案 0 :(得分:1)
apply
是一个函数方法,允许传递显式this
参数(可能与函数所属的对象不同)和参数数组。在您的示例中,apply
用于接受参数数组,以替代spread operator。