改变this指向的方法
Posted joeynkay
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了改变this指向的方法相关的知识,希望对你有一定的参考价值。
一、fn.call(thisArg, arg1, arg2...)
- 调用fn函数
- 改变函数的this指向----变为thisArg
- 主要作用:用来实现ES5中的类继承
二、fn.apply(thisArg, [argsArray])
- 调用fn函数
- 改变函数this指向
- 参数必须是数组形式
- 主要应用:借助Math内置对象的函数
- 主要应用2:将一个数组添加到另一个数组---优点,无需for循环添加;concat方法返回的是新的数组;
三、fn.bind(thisArg,arg1, arg2...)
- 不会调用函数
- 可以改变函数内部this的指向
- 返回由指定的this值和初始化参数改造的原函数的拷贝;(一个新的函数)
- 主要应用:setTimeout等定时器,里面的回调函数的this默认指向浏览器(windows),使用bind()重绑定,使得回调函数中的this指向类的实例,从而简化代码;
以上是关于改变this指向的方法的主要内容,如果未能解决你的问题,请参考以下文章