function add(c,d){ return this.a + this.b + c + d; } var s = {a:"雞", b:"你"}; console.log(add.call(s,"太","美")); // 雞你太美 console.log(add.apply(s,["太","美"])); // 雞你太美
call(this,1,2,3,4):一個是函數運行的做用域(this),另外一個是必須列舉出來的參數。數組
apply(this,arguments):一個是函數運行的做用域(this),另外一個是參數數組。app
一、都是在特定的做用域中調用函數,等於設置函數體內this對象的值,以擴充函數賴以運行的做用域;函數
二、this老是指向調用某個方法的對象,當你使用call()和apply()方法時,就會改變this的指向,具體指向誰,由你作主。this