分享一下改变this指向的3个简单方法。
三个强行改变函数本身this指向的方法
call和apply的区别在于参数上,第一个参数都是前面函数(方法)中this应当指向的对象,第二个及以上的参数,是前面函数(方法)需要的实参,call以列表的形式一个一个写出来,apply将所有的参数放到一个数组里
call
1-是函数的方法
2-fn.call(obj,arg1,arg2,...)
调用fn这个函数,并且 会改变fn执行的时候的this 为 obj,剩余的参数 会作为 实参 传入 fn 内部,arg1,arg2,
apply
1-是函数的方法
2-fn.apply(obj,[arg1,arg2,...])
调用fn这个函数,
第一个参数 改变this ,,会改变fn执行的时候的this 为 obj,
第二个参数 会作为 实参 传入 fn 内部,arg1,arg2,
bind 给一个函数绑定this
1-是函数的方法
2- let resFn = fn.bind(obj)
不会调用fn函数,不会影响原函数fn里面的this,返回一个新函数resFn,
第一个参数的值 会改变 新函数resFn调用的时候的this
resFn 和 fn 内的代码是一样