javascript Array.prototype.push如何连接

时间:2012-12-26 22:36:14

标签: javascript arrays concatenation

我已经看到Array的push方法用于替换连接,但我不完全确定它是如何工作的。

var a = [1,2,3];
var b = [4,5,6];
Array.prototype.push.apply(a,b);

这是如何连接的,而不是返回一个新数组?

2 个答案:

答案 0 :(得分:15)

.apply()有两个参数:

fun.apply(thisArg[, argsArray])

您传递a作为this对象,b作为参数列表,因此您的代码实际上是使用{{.push()调用b 1}}作为你的论点:

var a = [1, 2, 3];
a.push(4, 5, 6);

现在,.push()只是改变原始数组。

答案 1 :(得分:4)

使用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);