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');
View Code

当然也可以通过这种方式实现多继承的作用,只需要使用在子类中用每个父类调用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
View Code

 

posted on 2014-11-22 19:03  边城愚者  阅读(206)  评论(0编辑  收藏  举报