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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容