您当前的位置: 首页 > 

小志的博客

暂无认证

  • 1浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

es6箭头函数

小志的博客 发布时间:2019-10-08 15:51:24 ,浏览量:1

在es6中,推出了一个新语法 箭头函数;

以前定义一个函数,是这么定义的;

let test=function(){

	console.log('我是箭头函数');

};

现在可以简化下,用箭头函数:

let test=()=>{console.log('我是箭头函数')};

然后假如函数体只有一条语句或者是表达式的时候{}可以省略

let test=()=>console.log('我是箭头函数');

加形参情况;

let test2=(a)=>console.log(a);

只有一个形参的时候 ()可以省略 改成:

let test2=a=>console.log(a);

多个形参:

let test3=(x,y)=>console.log(x,y);

test3(10,20);

有返回值情况:

let test5=(x,y)=>{

	console.log(x,y);

	return x+y;

}

console.log(test5(1,3));

关于 箭头函数里的this;(重点) 箭头函数没有自己的this,箭头函数的this不是调用的时候决定的,而是再定义的时候所在的对象就是它的this 箭头函数的this看外层是否有函数, 如果有,外层函数的this就是内部调用箭头函数的this 如果没有,则this是window




    
    Title


按钮1
按钮2

  let btn1=document.getElementById('btn1');
  let btn2=document.getElementById('btn2');

  btn1.onclick=function(){
    alert(this);
  };
  btn2.onclick=()=>{
    alert(this);
  }




在这里插入图片描述上图可以看出 : 点击 按钮1, 这里的this是调用的时候的btn1对象;

点击按钮2,this是window对象;

再来个复杂点的实例,来深入理解下:

箭头函数搞到定义对象的回调函数里;




    
    Title


按钮1
按钮2

  let btn1=document.getElementById('btn1');
  let btn2=document.getElementById('btn2');

  let person1={
    name:'tom',
    getName:function(){
      btn1.onclick=()=>{
        console.log(this);
      }
    }
  }
  person1.getName();

  let person2={
    name:'xiaozhi',
    getName:function(){
      btn2.onclick=function(){
        console.log(this)
      }
    }
  }
  person2.getName();




在这里插入图片描述 上图可以看出 : 因为箭头函数是定义再对象的回调方法里,所以点击按钮1,这里的this是person1; 点击按钮2,这里的this是 调用的时候的btn2对象;

关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.0854s