为什么Array.push应用并调用不起作用?

时间:2015-06-26 23:30:14

标签: javascript arrays

我不明白为什么这段代码不起作用。这里a.push.apply(this,b);和a.push.call(窗口,7);也没有用。

<script>
        var a = [1, 2, 3, 4];
        var b = [7];

        a["push"].apply(this, b);
</script>

1 个答案:

答案 0 :(得分:6)

您正在将“push”应用于错误的对象。尝试:

<script>
        var a = [1, 2, 3, 4];
        var b = [7];

        a["push"].apply(a, b);
</script>

a.push.call(a, 7);的相同推理。

a["push"]只返回一个函数,没有关于调用对象的信息。当您调用apply时,您正在应用该函数,您需要做的是提供一个“对象上下文”,即您要应用该函数的对象,以及函数参数。