零零碎碎看过很多关于箭头函数的东西,今天做一个小总结,写下来之后关于箭头函数的内容就一目了然,5分钟完全掌握。

在js中有一个设计缺陷,即,当对象的方法返回函数时,这个函数内部的this指向的是window

1
2
3
4
5
6
7
8
9
10
11
var obj = {
type: 1,
getThis: function() {
return function () {
console.log(this);
}
}
}
var func = obj.getThis();
func(); // 打印出了window

为了解决这个问题,箭头函数就出现了

箭头函数中根本没有this的概念,可以说它只将this当做普通变量处理;当在箭头函数内部出现this时,它会自动向作用域上方查找this(这也是为什么vue中在某些地方会特别禁用箭头函数的原因)

1
2
3
4
5
6
7
8
9
10
11
var obj = {
type: 1,
getThis: function() {
return () => {
console.log(this)
}
}
}
var func = obj.getThis();
func(); // 打印出了obj