箭头函数
- 解决问题:
1.缩减代码
2.改变 this 指向
普通写法vs箭头函数vs
//普通写法
const number=function(number){
return number*2
};
//箭头函数
const number2=(number)=>{
return number*2
};
console.log(number2(2)) //-->4
箭头函数升级版本
const number3=(number)=> number*2;
console.log(number2(2)) //-->4
const number3=number=> number*2;
console.log(number2(2)) //-->4
//或者可以这样
const number3=(number=> number*2);
const number5=(number,number2)=> number+number2
console.log(number5(2,1)) //--> 3
const number5=(number,number2)=>{
sum=number+number2;
return sum
}
console.log(number5(2,1)) //--> 3
改变this指向
// 改变this指向
const team={
name:['tom','bob'],
teamName:'ES6',
teamSummary:function(){
return this.name.map(function (items) {
//当前this已经没有明确指向了
return `${items}属于${this.teamName}分类下`
})
}
};
console.log(team.teamSummary())//this.teamName显示undefined;
//方法1(提前声明一个this)
const team={
name:['tom','bob'],
teamName:'ES6',
teamSummary:function(){
let that=this;//声明一个this
return this.name.map(function (items) {
return `${items}属于${that.teamName}分类下`
})
}
};
console.log(team.teamSummary())//正常显示
//方法2(bind()方法)
const team2={
name:['tom','bob'],
teamName:'ES6',
teamSummary:function(){
return this.name.map(function (items) {
return `${items}属于${that.teamName}分类下`
}.bind(this))//把this绑定给函数
}
};
//方法3(箭头函数)
const team={
name:['tom','bob'],
teamName:'ES6',
teamSummary:function(){
return this.name.map((items)=> {
//当前this已经没有明确指向了,如果要明确,就得在上一个return之前先声明一个this;
return `${items}属于${this.teamName}分类下`
})
}
};