关于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]这一个数组给传进去,那么函数又是怎么接受的呢?只有两个形参,是如何一下子接受四个实参的呢?
17
收起
正在回答
1回答
同学你好,使用call和apply方法不需要研究具体过程,这些方法都是封装好的,我们知道怎么使用就好。
1、同学举得这个函数例子不合理,一般需要改变this指向的时候使用call和apply方法,或者某些js内置方法需要借助call和apply来达到效果。
2、函数例子中不管使用call和apply方法传参,add方法中只有两个形参,所以接收是1和2,计算的和为3,剩余的参数接收不到。
在不确定参数传入有多少的情况下,不会写具体的形参,会使用arguments接收。例如
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星