apply,call ,bind 區別用法

apply call bind 共同點
  1. 都是用來改變函數的this對象的指向的。
  2. 第一個參數都是this要指向的對象。
  3. 都可以利用后續參數傳參

apply

語法:apply(thisArg, [argsArray])

var user = {
  greet: "hello",
  greetUser: function (userName) {
    console.log(this.greet + " " + userName);
  },
};

var greetHi = {
  greet: "hi",
};

user.greetUser.apply(greetHi, "zhouJin"); // hi zhouJin

call

語法:call(thisArg, [argsArray])

var user = {
  greet: "hello",
  greetUser: function (userName) {
    console.log(this.greet + " " + userName);
  },
};

var greetHi = {
  greet: "hi",
};

user.greetUser.call(greetHi, "zhouJin"); // hi zhouJin

bing

用法: 使用bind方法,可以為函數綁定this值,然后作為一個新的函數返回

var user = {
  greet: "hello",
  greetUser: function (userName) {
    console.log(this.greet + " " + userName);
  },
};

var greetHi = user.greetUser.bind({ greet: "hi" });

greetHi("zhouJin"); // hi zhouJin
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容