箭头函数与解构赋值

  • 箭头函数可以与解构赋值一起用的
const firts =({one,two})=>{return one+two};
这就等同于
function first(all){
   return all.one + all.two;
}

为认为最为典型的列子是dva中connect的写法
@connect(({ classesmanage, loading }) => ({
 classesmanage,
 loading: loading.effects['classesmanage/tagList'],
}))

如果你将{classesmanage, loading }变为一个参数 比如a,再在箭头函数中打印出a,就可以看到其实a是所有的model
  • 在箭头函数中还比较容易混淆的是括号,圆括号于花括号
如果返回的是一个对象的话,我们需要用圆括号将其包起来
const second= ()=>({a:1,b:2});

如果返回的不是一个对象,那我们这样写就好了
const third = (a,b)=>{return a+b};
  • 箭头函数中this的指向,指向定义时所在的作用域而不是运行时所在的作用域
function Timer(){
   this.s1 = 0;
   this.s2 = 0;
   setInterval(()=>this.s1++,1000);  //指向timer
   setInterval(function(){    //指向全局
   	this.s2++;
   },1000);
}

var time  = new Timer();

setTimeout(()=>console.log('s1:',time.s1),3100);  //3
setTimeout(()=>console.log('s2:',time.s2),3100);  //0

你可能感兴趣的:(js)