技术交流QQ群:1027579432,欢迎你的加入!
欢迎关注我的微信公众号:CurryCoder的程序人生
1.函数内this指向问题
函数内部的this指向是当我们调用函数的时候确定的。调用方式的不同决定了this的指向不同。一般情况下,this指向我们的调用者。2.改变函数内部的this指向
JavaScript为我们专门提供了一些方法帮我们更优雅的处理函数内部的this指向问题,常用的有bind()、call()、apply()三种方法。2.1 call()方法
call()方法调用一个对象。简单理解为调用函数的方式,但是它可以改变函数的this指向。语法规范:fun.call(thisArg, arg1, arg2, ...)
2.2 apply()方法
apply()方法调用一个函数。简单理解为调用函数的方式,但是它可以改变函数的this指向。语法规范: thisArg:在fun函数运行时指定的this值;argsArray:传递的值,必须包含在数组中;返回值就是函数的返回值,因为它就是调用函数;fun.apply(thisArg, [argsArray])
2.3 bind()方法[重点]
bind()方法不会调用函数。但是能改变函数内部this指向。bind()方法的应用场景:如果有的函数我们不需要立即调用,但是又想改变这个函数内部的this指向,此时用bind()方法。语法规范: thisArg:在fun函数运行时指定的this值;arg1、arg2:传递的其他参数;返回由指定的this值和初始化参数改造的原函数拷贝;fun.bind(thisArg, arg1, arg2, ...)