相关知识补充:
- ES6:
一、关于箭头函数中this指向的问题
①、
<script>
setTimeout(function () {
console.log(this);
}, 1000)
setTimeout(() => {
console.log(this);
}, 1000)
<script/>
在这段代码中,我们两条log语句输出的都是window,这个我们很好理解
②、问题: 箭头函数中的this是如何查找的呢?
<script>
const obj = {
aaa() {
setTimeout(function () {
console.log(this); // window
})
setTimeout(() => {
console.log(this); // obj对象
})
}
}
obj.aaa()
<script/>
很明显,在上述代码块执行后控制台打印的语句一个是window,一个是obj对象。
这两段代码不同之处就在于一个用的是ES5的函数定义写法,一个用的是ES6中箭头函数
那为什么这里this的指向会不相同呢?