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

Javascript 为什么Array.push应用和调用不起作用?,javascript,arrays,Javascript,Arrays,我不明白为什么这个代码不起作用。这里a.推。应用(这个,b);和a.推送呼叫(窗口,7);没有也行 <script> var a = [1, 2, 3, 4]; var b = [7]; a["push"].apply(this, b); </script> 变量a=[1,2,3,4]; var b=[7]; a[“推送”]。适用(本,b); 您正在“应用”推送到错误的对象。尝试: <script>

我不明白为什么这个代码不起作用。这里a.推。应用(这个,b);和a.推送呼叫(窗口,7);没有也行

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

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

变量a=[1,2,3,4];
var b=[7];
a[“推送”]。适用(本,b);
您正在“应用”
推送
到错误的对象。尝试:

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

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

变量a=[1,2,3,4];
var b=[7];
a[“推送”]。适用(a、b);
a.push.call(a,7)的相同推理

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

您正在“应用”
推送到错误的对象。尝试:

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

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

变量a=[1,2,3,4];
var b=[7];
a[“推送”]。适用(a、b);
a.push.call(a,7)的相同推理


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

有效!为什么有效?第一个参数是对象上下文,为了清晰起见,我认为它可能是任何东西:它也可能是(并且通常被写成):
Array.prototype.push.apply(a,b)
,以避免这种混淆。当以这种方式编写时,很明显应用的函数没有隐式地与任何对象关联。Works!为什么有效?第一个参数是对象上下文,为了清晰起见,我认为它可能是任何东西:它也可能是(并且通常被写成):
Array.prototype.push.apply(a,b)
,以避免这种混淆。当这样写时,很明显应用的函数没有隐式地与任何对象关联。