箭头函数
var f = a => b;
var f = function(a){
return b
}
两者等价
1.作用:
定义匿名函数
简化回调函数
2.基本语法:
没有参数:() => console.log(“aa”)
一个参数: x => i + 2
大于一个参数:(a, b) => a + b
函数体不用大括号,默认返回结果
函数体有多个语句,需要用{}包围,若有需要返回的内容,需要手动返回
3.使用场景:
多用来定义回调函数
4.箭头函数的特点
箭头函数没有自己的this,箭头函数的this不是调用的时候决定的,而是在定义的时候处在的对象就是它的this
扩展理解:箭头函数的this看外层是否有函数
如果有,外层函数的this就是内部箭头函数的this
如果没有,则this是window
无法通过call/apply/bind改变this
例子:
var id = 10;
function fun (){
setTimeout(() => {
console.log(this.id);
},1000)
}
fun.call({id: 20})
因为定时器函数的参数是一个箭头函数,外层函数为fun;
fun通过call指定了函数生效时所处的对象{id: 20};
若果外层没有函数了,箭头函数的this指向全局对象window,输出全局变量id的值,10.
正是因为箭头函数没有自己的this,所以不能用作构造函数.