【JAVASCRIPT】call和apply的用法以及區別

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

相關文章
相關標籤/搜索