关于call和apply传参的具体过程

关于call和apply传参的具体过程

比如一个函数 

function add (num1, num2){

                    return num1 + num2;

}

//这里调用他

add.call(window,1,2,3,4); // call这里是像这样把1,2,3,4一个个传到函数里,然后最后返回1+2+3+4的和吗。那么具体每一个过程是什么样的呢?首先传1进去,num1 =1,然后传2进去,num2=2。接着传3,那这个3赋值给谁呢?就是具体过程搞不明白。

add.apply(window,[1,2,3,4]); //apply这里是直接把[1,2,3,4]这一个数组给传进去,那么函数又是怎么接受的呢?只有两个形参,是如何一下子接受四个实参的呢?


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,使用call和apply方法不需要研究具体过程,这些方法都是封装好的,我们知道怎么使用就好。

1、同学举得这个函数例子不合理,一般需要改变this指向的时候使用call和apply方法,或者某些js内置方法需要借助call和apply来达到效果。

2、函数例子中不管使用call和apply方法传参,add方法中只有两个形参,所以接收是1和2,计算的和为3,剩余的参数接收不到。

在不确定参数传入有多少的情况下,不会写具体的形参,会使用arguments接收。例如

http://img1.sycdn.imooc.com//climg/5ee9ce21094e93cb06320186.jpghttp://img1.sycdn.imooc.com//climg/5ee9ce2709702fa101360084.jpg

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师