箭头函数:
用法:
var a=()=> 5;
var b=(sum1,sum2)=> sum1+sum2
//多行代码
var c=(sum1,sum2)=>{sum1=sum1+1;sum2=sum2+2;return sum1+sum2}
//返回对象
var d=id=>({
id:id,
name:'jack',
})
//与变量解构连系运用
var e=({id:‘001’,name:‘jack’})=>id+' '+name
用途:简化回调、有利于封装回调(注重点1会讲)
[0,1,2,3].map(i=>i*10)
注重点:
1:箭头函数函数体内的this指向的是定义该箭头函数时地点的对象,而不是运用时地点的对象
比方:
function test(){
setTimeout(()=>{console.log{this.id}},1000)
}
var id='1'
test.call({id:'2'})
//输出效果为2(此时this指向test,假如不是箭头函数的话,this指向的是window)
ps:箭头函数的this指向固化是因为箭头函数自身没有this,*所以也就不能用作组织函数,就不能经由过程new来建立。*
正因为箭头函数的this指向固化(指向定义该函数的对象),所以有利于封装回调函数
2:箭头函数内里没有arguments
function test(){
setTimeout(()=>{console.log(arguments)},1000)
}
test(1,2)
//此时输出[1,2]
3 不可以运用yield敕令