1、箭头函数一般定义匿名函数时使用:
2、写法简化:
① () => {}
function (){
}
②(a,b) => a+b // 不加大括号,表示return返回值
function(a,b){
return a+b
}
③(a,b) => ({a:a+3,b:4+b})
function(a,b){
return {
a:a+3,
b:b+4
}
}
④a => a
function (a){
return a;
}
3、eg:
(1)
let demo5 = (a, b) => a + b
console.log(demo5(4, 5)); //9
对比
function demo7(a,b){
return a+b;
}
console.log(demo7(4,5));//9
(2)
let demo6 = a => Math.pow(a, 4)
console.log(demo6(2));//16
function demo8(a){
return Math.pow(a, 4);
};
console.log(demo8(2));//16
console.log('-------------->')
let add=(a,b)=>{ return a+b};
console.log(add(1,5));//6
4、PS:
(1)函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象;
eg:
// 箭头函数中的this
var num2 = 12;
var obj2 = {
num2: 30,
demo7: function() {
console.log(this);//Object { num2: 30, demo7: demo7() }
setTimeout(() => {
console.log(this);//Object { num2: 30, demo7: demo7() }
console.log(this.num2)//30
}, 1000)
}
}
obj2.demo7();
(2)不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。
(3)不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。
(4)不可以使用yield命令,因此箭头函数不能用作 Generator 函数。