文章目录
前言
我们来学习一下es6的箭头函数。
一、ES6箭头函数
es6中的箭头函数实际上是一种语法糖,使用起来会更加方便。
1.即它允许使用箭头(=>)来定义函数
代码如下(示例):
let test = a => a
2.如果不需要给这个函数传递参数,就使用圆括号来代表参数部分
代码如下(示例):
let test = () => 2
3.如果传入的参数多于一个,同样也需要使用圆括号
代码如下(示例):
let test = (a,b) => a+b
4.如果只有一条语句,就会自动添加return。但是如果有两条及以上的语句,就需要使用{},并在需要返回值的地方添加return
代码如下(示例):
let test = (a,b) => {
a++;
return a+b
}
5.如果我们希望返回一个对象,则必须使用()将对象括起来
代码如下(示例):
let test = () => ({
name:'xiaoming'
})
6.箭头函数可以简化回调函数
代码如下(示例):
const arr = ['111','222']
arr.map(item => aaa)
7.箭头函数不是绑定this
代码如下(示例):
let test = () =>{
console.log(this);
}
test()
//此时this指向window
const obj = {
age:1,
fn:setTimeout(()=>{
console.log(this);
},1000)
}
obj.fn()
//此时this依旧指向window
const obj1 = {
age:1,
show(){
setTimeout(()=>{
console.log(this);
console.log(this.age);
},1000)
}
}
obj.show()
//此时this指向obj1
我们可以得结论,箭头函数中的this是父级作用域的。箭头函数没有arguments。另外,严格模式下的this为undefined
总结
- (只有一个形参的时候)可以省略。
- {}可以省略,当只有一句代码或者只有返回值的时候,省略return。
- 没有arguments。
- 箭头函数没有this,箭头函数this是父级作用域的。