push.apply和push的问题
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script> var a1=[1,2,3]; var a2=["a","b","c"]; var b=a1.push.apply(a1,a2); console.log(a1); console.log(a2); console.log(b);//6 var c1=[1,2,3]; var c2=["a","b","c"]; var d=c1.push(c2); console.log(c1); console.log(c2); console.log(d);//4 </script> </body> </html>
看了一下输出,使用push.apply的话,是a2里的每个元素依次添加进a1。直接使用push则是c2数组作为一个元素添加进c1。请问为什么会有这样的区别?
另外,a1.push.apply(a1,a2)这句里面,push前面写a1还是a2是不是无所谓,只要有push方法就行?
2
收起
正在回答
2回答
同学你好, 抱歉老师描述的不严谨, 给同学造成了困扰,
apply的第一个参数是用来替换的操作对象,第二个参数是要变成push参数的数组。push方法内部会自动处理这个数组参数的。
老师这里给同学举个例子对比一下, 帮助同学理解
1、 如下图打印函数的参数arguments
效果图:
因为只是用一个形参a接收传入的参数, 所以只打印了以第一个参数1
2、 使用四个形参接收传入的变量,如下图
效果图:
同学可以结合示例下去练习一下, 加深理解, 如果还有以后可以继续在问答区提问, 我们会继续为你解答的
如果帮助到了你, 欢迎采纳!
祝学习愉快~~~
HTML5&CSS3进阶与常用框架 2018
- 参与学习 315 人
- 提交作业 136 份
- 解答问题 626 个
如果你有H5、CSS3、JS基础,热爱前端并希望在前端应用方面不断进步,那就来吧,本路径为你带来的课程有HTML5进阶、CSS3进阶、JS面向对象、jQ基础、Less等,助你进一步提升前端开发技能
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星