提示:前端查漏补缺,仅代表个人观点,不接受任何批评
提示:以下是本篇文章正文内容,下面案例可供参考
一、关于this
this永远指向的是最后调用它的对象,也就是看它执行的时候是谁调用的
普通函数:关于this,谁调用就指向谁,没有调用者,就指向全局对象window
箭头函数:箭头函数的this指向于函数作用域所用的对象。
二、this的指向
1、全局环境下的this指向
在全局作用域下,this始终指向全局对象window,无论是否是严格模式!
2、函数内的this
- 普通函数内的this分为两种情况,严格模式下和非严格模式下。
1. 严格模式下:直接test()调用函数,this指向undefined,`window.test()`
调用函数this指向window。因此,在**严格模式下**, 我们对代码的的调用必须严格的**写出被调用的函数的对象**,不可以有省略或者说简写。
2. 非严格模式下:非严格模式下,通过test()和`window.test()`调用函数对象,this都指向window。
3、对象中的this
对象内部方法的this指向调用这些方法的对象,也就是谁调用就指向谁。
总结
提示:这里对文章进行总结:
- 函数的定义位置不影响其this指向,
this指向只和调用函数的对象有关
。 - 多层嵌套的对象,
内部方法的this指向离被调用函数最近的对象
。