改变this指向的方法

一、fn.call(thisArg, arg1, arg2...)

  1. 调用fn函数
  2. 改变函数的this指向----变为thisArg
  3. 主要作用:用来实现ES5中的类继承

二、fn.apply(thisArg, [argsArray])

  1. 调用fn函数
  2. 改变函数this指向
  3. 参数必须是数组形式
  4. 主要应用:借助Math内置对象的函数
  5. 主要应用2:将一个数组添加到另一个数组---优点,无需for循环添加;concat方法返回的是新的数组;

三、fn.bind(thisArg,arg1, arg2...)

  1. 不会调用函数
  2. 可以改变函数内部this的指向
  3. 返回由指定的this值和初始化参数改造的原函数的拷贝;(一个新的函数)
  4. 主要应用:setTimeout等定时器,里面的回调函数的this默认指向浏览器(windows),使用bind()重绑定,使得回调函数中的this指向类的实例,从而简化代码;
原文地址:https://www.cnblogs.com/joeynkay/p/12734665.html