// 普通函数
function fn(a){
return a;
}
// 高阶函数
// 首先高阶函数可以抵抗js预解析机制,所以用let或const声明
// 写入参数的小括号与写入运算的大括号之间用=>连接,因此得名箭头函数
// 参数只有一个时可以省略小括号,当不写return时可以省略大括号
let fn = (a)=>{ return a }
let fn = a =>{ return a }
// 普通函数
function a (x){
return function (y){
return x+y;
}
}
// 高阶函数
// 若返回值为对象,=>后不能直接跟返回值,因为对象的大括号会与箭头函数的大括号表达冲突,需要把对象用小括号括起来
let a = x => y => x+y;
let a = x => y => ({sum: x+y});
箭头函数的this指向
在普通函数中,我们看this的指向遵循的规律是谁调用就指向谁。
let obj = {
fn: function(){
console.log(this);
}
}
console.log(obj.fn());