浅时光吖~  
生活明朗,万物可爱,加油~

call和apply的作用:改变this的指向。

call()和apply()的基本区别:在于将参数传递给函数。

call():使用其自有的实参列表作为函数的参数;

apply():要求以数组的形式传入参数。

语法:

  fun.call(thisobj,arg1,arg2) ;当后面参数个数确定时用call,参数之间用逗号连接

  fun.apply(thisobj,[arg1,arg2]);当后面参数个数不确定时用apply,参数通过数组形式输入

例子:

function add(c, d){ 
    return this.a + this.b + c + d; 
} 
var object = {a:1, b:3}; 
add.call(object, 5, 7); // 1 + 3 + 5 + 7 = 16 
add.apply(object, [10, 20]); // 1 + 3 + 10 + 20 = 34 

使用call和apply后,this指向变成了thisobj,如果不传参数,指向则为window。

 

posted on 2020-09-02 14:44  浅时光吖~  阅读(146)  评论(0编辑  收藏  举报