摘要: 箭头函数极大地简化了this的取值规则。
普通函数与箭头函数
普通函数指的是用function定义的函数:
var hello = function () {
console.log("Hello, Fundebug!");
}
箭头函数指的是用=>定义的函数:
var hello = () => {
console.log("Hello, Fundebug!");
}
JavaScript箭头函数与普通函数不只是写法上的区别,它们还有一些微妙的不同点,其中一个不同点就是this。
箭头函数没有自己的this值,箭头函数中所使用的this来自于函数作用域链。
这句话很简单,不过听着稍微有点莫名其妙,得从头说起。
this到底是什么?
关于this的文章也够多了,有时候越描越黑,我就不再添乱了,我只负责搬运一下MDN文档:this,感兴趣的可以仔细阅读一下,我摘录一些最重要的话就好了。
A function’s this keyword behaves a little differently in JavaScript
compared to other languages. It also has some differences between
strict mode and non-strict mode.
JavaScript是一门比较奇特的语言,它的this与其他语言不一样,并且它的取值还取决于代码是否为严格模式(“use s