时间: 2020-08-25|89次围观|0 条评论

1、在全局作用域下, this指向的是window对象

JavaScript中的this指向问题插图

2、在普通函数作用域下

在非严格模式下,this的指向依旧是window对象

JavaScript中的this指向问题插图1

在严格模式下,this的指向是undefined

JavaScript中的this指向问题插图2

3、构造函数调用, this 指向是实例对象

JavaScript中的this指向问题插图3
JavaScript中的this指向问题插图4

4、对象方法调用,this 指向该方法所属的对象

JavaScript中的this指向问题插图5
JavaScript中的this指向问题插图6

5、通过事件绑定的方法, this 指向绑定事件的对象

JavaScript中的this指向问题插图7
JavaScript中的this指向问题插图8

6、在定时器函数下, this 指向 window

JavaScript中的this指向问题插图9

7、更改this指向的三个方法

我们知道在普通函数里this指向window,下面提供三种方法改变this的指向,分别为:call()、apply()、bind()

JavaScript中的this指向问题插图10

差别:

call 、bind 、 apply 这三个函数的第一个参数都是 this 的指向对象。

call和bind 的参数是直接放进去的,第二第三第 n 个参数全都用逗号分隔。apply 的所有参数都必须放在一个数组里面传进去。

bind 返回的是一个新的函数,你必须调用它才会被执行,所以多了一个括号。

文章转载于:https://www.jianshu.com/p/79a44f064571

原著是一个有趣的人,若有侵权,请通知删除

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《JavaScript中的this指向问题
   

还没有人抢沙发呢~