call、apply、bind

66 阅读1分钟

call 和 apply

  1. call的用法
图片替换文本
  1. apply的用法
图片替换文本

总结:call 和 apply 都可以改变this指向,第一个参数都为要传入的对象 ,而在后面的参数传入时,call 是以参数列表的形式,而 apply 则是以数组的形式

      function foo() {
        console.log(this);
      }
      foo.call(); //window
      foo.call({ name: "Tom" }); //{name: 'Tom'}
      foo.call(123); //Number {123}

      foo.apply(); //window
      foo.apply({ name: "Tom" }); //{name: 'Tom'}
      foo.apply(123); //Number {123}

bind

我们希望一个函数总是显示的绑定到一个对象上,可以怎么做呢?

  • 使用bind方法,bind() 方法不执行函数,而是返回一个绑定新this的函数

  • 在 bind() 被调用时,这个新函数的 this 被指定为 bind() 的第一个参数,而其余参数将作为新函数的参数,供调用时使用。

    图片替换文本