一、js中call()和apply()方法的區(qū)別
1、參數(shù)傳遞方式不同
call()
方法的參數(shù)是一個一個地傳遞進去的,而apply()
方法的參數(shù)則是以數(shù)組的形式傳遞進去的。
2、參數(shù)個數(shù)不同
由于apply()
方法的參數(shù)是以數(shù)組的形式傳遞進去的,所以可以傳遞不定個數(shù)的參數(shù)。
而call()
方法則需要明確傳遞參數(shù)的個數(shù),如果傳遞的參數(shù)個數(shù)與函數(shù)定義的參數(shù)個數(shù)不一致,那么多余的參數(shù)會被忽略。
3、性能不同
由于call()
方法是一個一個地傳遞參數(shù)進去的,所以在傳遞參數(shù)較多的情況下,性能會稍微差一些。而apply()
方法則只需要傳遞一個數(shù)組,所以在傳遞參數(shù)較多的情況下,性能會稍微好一些。