call apply 简单的用法:绑定一些函数 用于传递参数 调用
简单的使用:
function sum(x , y){
<span style="white-space:pre"> </span>return x+y;
}
function call1(num1 , num2){
return sum.call(this , num1 , num2);
}
function apply1(num1 , num2){
return sum.apply(this , [num1,num2]); <pre name="code" class="javascript"><span style="white-space:pre"> </span>//return sum.apply(this , arguments);
}alert(call1(10 , 20));alert(apply1(20,40));
call, apply方法区别是,从第二个参数起, call方法参数将依次传递给借用的方法作参数, 而apply直接将这些参数放到一个数组中再传递, 最后借用方法的参数列表是一样的.
扩充作用域
window.color = 'red';
var obj = {color:'blue'};
var obj2 = {color:'yellow'};
function showColor(){
alert(this.color);
}
showColor.call(window);
showColor.call(obj);
根据传入的对象不同this指代不同,颜色也不一样。
如果不使用call方法,需要obj.showColor=showColor; obj.showColor();