箭头函数是用来简化函数定义语法的:
// 如下就是一个箭头函数
const fn = () => {
console.log(123);
}
fn();
1.在箭头函数中,如果{}函数体只有一句代码,且代码的执行结果就是函数的返回值,函数体大括号{}可以省略不写。
const fn = (x,y) => {
return x+y;
}
console.log(fn(1,3)); // 4
// 可以这样简写
const fn2 = (n1,n2) => n1+n2;
console.log(fn2(2,3)); // 5
2.在箭头函数中,如果形参只有一个,可以省略小括号()。
// 形参只有一个num 且执行结果就是函数的返回值
const fun = num => num;
console.log(fun(20)); // 20
3.箭头函数不绑定this关键字,箭头函数中的this,指向的是函数定义位置的上下文this。
// 箭头函数不绑定this关键字,箭头函数中的this,指向的是函数定义位置的上下文this。
const obj = {name:"Axx",age:19};
const fn = () => {
console.log(this);
}
fn.call(obj); // this指向还是window,因为箭头函数没有自己的this
function fn2(){
console.log(this); // fn2普通函数this指向obj
return () => {
console.log(this);
}
}
// 此时箭头函数的this指向obj,因为箭头函数处于fn2函数体当中,而fn2的this指向的是obj,因此箭头函数的this也指向obj
fn2.call(obj)();