我不明白为什么这段代码不起作用。这里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>
答案 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时,您正在应用该函数,您需要做的是提供一个“对象上下文”,即您要应用该函数的对象,以及函数参数。