call 和 apply 都是為了改變某個函數(shù)運行時的 context 即上下文而存在的朗儒,換句話說,就是為了改變函數(shù)體內(nèi)部 this 的指向吮炕;
而在參數(shù)方面兩個方法也有區(qū)別:
function fun(){
////
}
func.apply(this,[arg1,arg2]);
func.call(this,arg1,arg2);
我們看到兩個方法的參數(shù)不同但是效果是一樣的腊脱。
也就是說在運用apply的時候他會把數(shù)組拆分為它的每一個內(nèi)容
[1,2,3] => 1,2,3
所以當(dāng)我們遇到 Math.min(arg1,arg2,arg3) 不支持傳入數(shù)組參數(shù)的方法我們可以用apply方法拆分?jǐn)?shù)組。
var a = [1,2,3];
Math.min.apply(null,a);
//這樣就達(dá)到了選出數(shù)組中最小數(shù)字的目的龙亲。非常方便陕凹。