標籤:des style blog http io ar color os 使用
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=12View Code
Javascript中call函數和apply函數的使用