箭头函数
语法:(形参)=>{函数体}
例子:
const fn = () => {
console.log(123);
};
fn();//123
-
箭头函数是用来简化函数定义语法的
-
函数体中只有一句代码,且代码的执行结果就是返回值,可以省略大括号
function sum (num1 , num2) {
return num1 +num2 ;
}
//相当于
const sum = (num1 , num2)=>num1 + num2;
console.log(sum(1,3));//4
- 如果形参只有一个,可以省略小括号
function fn (v){
return v;
}
//相当于
const fn1 = v => v;
console.log(fn1(5));
- 箭头函数不绑定this箭头函数没有自己的this关键字,如果在箭头函数中使用this, this关键字将指向箭头函数定义位置中所在作用域的this
const obj = { name: "张三" };
function fn2() {
console.log(this);//{ name: '张三' }
return () => {
console.log(this);
};
}
const resFn = fn2.call(obj);
resFn(); //{ name: '张三' }
第一个this是由call改变的this指向,指向obj。第二个this是箭头函数中的this,指向当前作用域中的this,也就是fn2中的this指向
var age =100;
var obj = {
age: 20,
say:() =>{
console.log(this.age)
}
}
obj.say(); //100
由于在对象中不能产生作用域,因此箭头函数中的this指向window,所以obj.say()输出的age是window的age,值为100