我已经看到用于替换串联的 Array 的 push 方法,但我不完全确定它是如何工作的。
var a = [1,2,3];
var b = [4,5,6];
Array.prototype.push.apply(a,b);
这如何连接到位而不是返回一个新数组?
我已经看到用于替换串联的 Array 的 push 方法,但我不完全确定它是如何工作的。
var a = [1,2,3];
var b = [4,5,6];
Array.prototype.push.apply(a,b);
这如何连接到位而不是返回一个新数组?
.apply()
接受两个参数:
fun.apply(thisArg[, argsArray])
你a
作为你的this
对象和b
你的参数列表传递,所以你的代码实际上是用你的参数调用.push()
的元素b
:
var a = [1, 2, 3];
a.push(4, 5, 6);
现在,.push()
只需改变您的原始数组。
使用this
. 要尝试描述它,请参阅这个 customPush 函数。
function customPush() {
var i = 0,
len = arguments.length;
for(; i < len; i++) {
this[this.length] = arguments[i];
}
};
var a = [1,2,3];
var b = [4,5,6];
customPush.apply(a,b);