call和apply都用於函數調用,和使用函數名直接調用不同,call和apply可以指定一個額外的參數作為函數體內的this對象。
call采用不定長的參數列表,而apply使用一個參數數組。
由於call和apply可以改變函數體內的this指向,因此通常被用來將一個對象原型上的方法應用到另一個對象上。一個常見的應用是處理函數的arguments,將其轉換為Array類型: