一:定义箭头函数的语法
语法: (参数1, 参数2 ...) => { 函数体 }
如果有且仅有 1 个形参,则()
可以省略
如果函数体内有且仅有 1 条语句,则{}
可以省略,但前提是,这条语句必须是 return 语句。
注:箭头函数可以没有函数名,可以将箭头函数赋值给一个变量,通过变量名调用函数;也可以直接使用箭头函数。
二:ES6写法
const fn2 = (a, b) => {
console.log('haha');
return a + b;
};
console.log(fn2(1, 2)); //输出结果:3
1 如果方法体内只有一句话,且这句话是 return 语句,那就可以把 {}省略
const fn2 = (a, b) => a + b;
console.log(fn2(1, 2)); //输出结果:3
2 在箭头函数中,如果形参只有一个参数,则可以把()省略。写法如下:
const fn2 = a => {
console.log('haha');
return a + 1;
};
console.log(fn2(1)); //输出结果:2
三:箭头函数的this用法
普通函数:this 指向的是函数被调用的对象(谁调用了函数,this 就指向谁)。
ES6函数:箭头函数本身不绑定 this,this 指向的是箭头函数定义位置的 this(箭头函数在哪个位置定义的,this 就跟这个位置的 this 指向相同)。
const name = '许嵩';
const obj = {
name: '千古壹号',
sayHello: () => {
console.log(this.name);
},
};
obj.sayHello(); // 许嵩
obj 这个对象并不产生作用域, sayHello() 这个箭头函数实际仍然是定义在 window 当中的,所以 这里的 this 指向是 window