ES6 用箭头函数弱化了 this 的用法。
基本语法
三种写法
- 普通写法
let xxx = (p1,p2)=>{
console.log(1)
return 2
}
相当于
let xxx = function(p1,p2){
console.log(1)
return 2
}
- 只有一个参数的时候可以不写括号 ,没有参数的时候必须加括号()
let xx2 = p1 => {
console.log(1)
return 2
}
- 如果函数体只有一句话,可以不写 {}。删除{}的同时要删掉return ,会自动return过去;但是一旦加了{},就一定要加return。
let xx3 = (p1,p2) => p1+p2
由于大括号被解释为代码块,所以如果箭头函数直接返回一个对象,必须在对象外面加上括号,否则会报错
() => ({})
箭头函数里的 this
function fn(){
setTimeout( ()=>{
console.log( this )
},100)
};
//ES5写法
function fn(){
var _this = this;
setTimeout( ()=>{
console.log( _this )
},100)
};