Javascript 中call函数和apply的使用:
Javascript中的call函数和apply函数是对执行上下文进行切换,是将一个函数从当前执行的上下文切换到另一个对象中执行,例如:
sourceObj.method.call(destObj,params1,params2) 是将sourceObj中的method函数放在destObj中执行
call函数还有另外一种重要的作用,在Javascript面向对象编程中实现多继承的作用,例如:
function parentClass(){
this.showText(text){
alert(text);
}
};
function inherentClass(){
parentClass.call(this);
};
var instance=new inherentClass();
instance.showText('inherent caller');
当然也可以通过这种方式实现多继承的作用,只需要使用在子类中用每个父类调用call方法。
同样apply和call函数的作用大致相同,只是传入的参数不同,apply函数和call函数的参数列表中第一个参数是相同的, 在call函数中第二个参数可以是任意的参数,而apply函数的第二个参数必须是数组,且apply函数只能有2个参数。
如下简单demo一下如何使用apply函数:
function sourceObj(firstPrams,secondParams){
alert(firsParams+secondParams);
}
function destObj(firstParams,seconParams){
alert(firstParams*secondParams);
}
sourceObj.apply(destObj,[6,2]); //result=12