学会奔跑!

call & apply

定义:

  call:调用一个对象的一个方法,以另一个对象替换当前对象。

  apply:应用某一对象的一个方法,用另一个对象替换当前对象。

语法:

  call([thisObj[,arg1[, arg2[, [,.argN]]]]]) 

  apply([thisObj[,argArray]])

区别:

  call和apply用法几乎一样,第一个参数为一个对象,不同之处在于第一个参数后参数的不同。call第一个参数后的参数为参数列表;apply第一个参数后的参数为数组。

实例:

apply:

function sub(a, b){
	console.log(a-b);
}

function add(a, b){
	console.log(a+b);
}

add.apply(sub, [2, 3]);//5

call:  

function sub(a, b){
	console.log(a-b);
}

function add(a, b){
	console.log(a+b);
}

add.call(sub, 2, 3);//5

由上例可以看出,当使用apply时,apply的第二个参数为数组参数。当使用call时,call的参数为列表。从结果可以看出函数add()替换了函数sub()运行。(也可以看成在sub函数执行时调用并执行了add函数)  

 

  

posted @ 2018-02-02 10:09  loriby  阅读(118)  评论(0编辑  收藏  举报
点击进入