箭头函数中的this

首先说this的问题对于大多数新手来说都是个问题,现在由于es6的普及,箭头函数也是深受大家的喜爱,箭头函数中的this又是如何的?

由于个人写作水平有限,直接上干货

看了好几篇写的好的文章,我自己总结下:

箭头函数中的this是局部的,怎么理解呢?一般我们都知道,this是调用时确定的,确定于运行时的环境。个人理解箭头函数中的this是没有绑定的,也就是说根本不绑定this,所以说我们平时用的时候需要特别注意,当我们在箭头函数中使用了this,那这个this则会像作用域链一样一层一层的寻找,直到找到window(浏览器中)。show the code

function foo() {
    this.id = 6;
    return () => {
        return () => {
            console.log(this.id)
        }
    }
}
//输出6

其实箭头函数中也不绑定arguments,当在箭头函数中使用了arguments则会像this一样一层一层往上寻找show the code:

function foo() {
    this.id = 6;
    return () => {
        return () => {
            console.log(this.id)
            console.log(arguments)
        }
    }
}
foo(1, 2, 3)()()
//6
//{ '0': 1, '1': 2, '2': 3 }
原文地址:https://www.cnblogs.com/duyingxuan/p/6432631.html