JavaScript中的箭头函数

159 阅读1分钟

箭头函数

语法:(形参)=>{函数体}

例子:

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