call、apply、bind方法的共同點和區(qū)別

var obj = {
    x: 81,
};

var foo = {
    getX: function() {
        return this.x;
    }
}

console.log(foo.getX.bind(obj)());  //81 注意:bind方法的返回值是函數(shù)

console.log(foo.getX.call(obj));    //81

console.log(foo.getX.apply(obj));   //81

/*
apply 、 call 、bind 三者都是用來改變函數(shù)的this對象的指向的;
?apply 、 call 、bind 三者第一個參數(shù)都是this要指向的對象,也就是想指定的上下文;
?apply 、 call 、bind 三者都可以利用后續(xù)參數(shù)傳參;
?bind 是返回對應函數(shù),便于稍后調(diào)用;apply 、call 則是立即調(diào)用 。
*/

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容