箭头函数this的指向

Posted guan-shan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了箭头函数this的指向相关的知识,希望对你有一定的参考价值。

看完这篇文章包你会做所有箭头函数this的指向问题

在ES6书中说道this的指向指向定义时候的对象,怎么理解他的这句话呢?废话不多说,直接上代码

var id = 1;
var obj = {
     id:2,
     fn:()=>{
           console.log(this.id)
     }
}
obj.fn()

谁定义箭头函数,是obj,那我们就看看this.obj的this指向就可以了很明显是window,所以这里箭头函数的this指向指向window

再看一道题

    function foo(){
        setTimeout(()=>{
            console.log(this.id)
        })
    }
    var id = 1;
    var obj = {
        id:2,
        foo
    }
    obj.foo()

谁定义了箭头函数,是setTimeout,那this.setTimeout的this直线也就是foo这个普通函数的this指向,那还不简单?普通函数的this指向调用他的对象,谁调用了他是obj,所以this指向为obj,答案为2

你学会了吗

以上是关于箭头函数this的指向的主要内容,如果未能解决你的问题,请参考以下文章

箭头函数与this指向问题

箭头函数this的指向

箭头函数this指向问题

前端片段整理

箭头函数的作用域

箭头函数和 this指向