Javascript 为什么Array.push应用和调用不起作用?
我不明白为什么这个代码不起作用。这里a.推。应用(这个,b);和a.推送呼叫(窗口,7);没有也行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>
<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)
,以避免这种混淆。当这样写时,很明显应用的函数没有隐式地与任何对象关联。