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