改变this指向的方法

Posted joeynkay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了改变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指向类的实例,从而简化代码;

以上是关于改变this指向的方法的主要内容,如果未能解决你的问题,请参考以下文章

可以改变this指向的方法

什么是this 改变this指向的方法

改变函数内this指向方法——callapplybind

改变this指向的方法

什么是this指向?怎么改变this指向

改变this指向