JS-apply 、call 以及 bind

相同点:

  1. 他们的作用都是相同的:改变 this 的指向
  2. 当他们不传参数的时候,就跟直接调用函数或者方法的作用一样,不改变this的指向
  3. 当只传入 null 的,与上面作用也是一样,不改变this的指向

不同点:

  1. apply 与 call 直接调用即可
  2. bind 要使用变量接收一下,然后再调用
  3. apply与call 是在调用的时候直接传递参数
  4. bind 可以在用变量接收的时候传递参数,也可以在接收后在调用中传递参数
  5. 传递参数的方式不一样
    • apply 的使用方式
      函数名字.apply (对象,[参数1,参数2,...])
      方法名字.apply (对象,[参数1,参数2,...])
    • call 的使用方式
      函数名字.call (对象,参数1,参数2,...)
      方法名字.call (对象,参数1,参数2,...)
    • bind 的使用方式:
      函数名字.bind (对象,参数1,参数2,...)
      函数名字. bind (对象),在调用时再传递参数
      方法名字.bind (对象,参数1,参数2,...)

https://www.cnblogs.com/Chinatsu/p/14067343.html

原文地址:https://www.cnblogs.com/Leo_wl/p/14098090.html