ES箭头函数

箭头函数

认识箭头函数

  • 箭头函数结构:const/let 函数名 = (参数)=> { 函数体 }

  • 将普通函数改写为箭头函数

    const add=function(x,y){};
    const add=(x,y)=>{};
    

注意事项

  • 单个参数:可以省略圆括号,无参或多个参数不能省略:const add = x =>{}

  • 单行函数体:可以同时省略{}和return,多行函数体不能再简化:const add = (x,y)=>x+y

  • 单行对象:返回单行对象,可以在{}外加上(),让浏览器不在认为那是函数体的花括号

    const add=x=>{};
    const add=(x,y) => x+y;
    const add=(x,y)=>({value:x+y});
    

不适用箭头函数的场景

  • 作为构造函数
  • 需要this指向调用对象
  • 需要使用arguments时

箭头函数的应用

点击按钮时,从0开始计时

<button id="btn">开始</button>
<span id="result">0</span>

const btn = document.getElementById('btn');
const result = document.getElementById('result');


const timer = {
 time: 0,
 start: function () {
   // this
   btn.addEventListener(
     'click',
     () => {
       // this
       setInterval(() => {
         console.log(this);
         this.time++;
         result.innerHTML = this.time;
       }, 1000);
     },
     false
   );
 }
};

timer.start();

this指向问题

全局作用域中的this指向window
一般函数中的this指向
  • 只有在函数调用时this指向才确定
  • this指向和函数在哪调用无关,之和谁在调用有关
  • 没有调用时在严格模式下指向undefined,在非严格模式下转为window
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值