ES6新增语法 - 理解箭头函数中的this关键字

关键知识点

箭头函数不绑定this,箭头函数没有自己的this关键字

如果在箭头函数中使用this,this关键字将指向箭头函数被定义位置中的this

注意:箭头函数里this指向的是定义时所在的对象,而不是使用时所在的对象

例子

   function fn() {
            console.log(this); //输出obj对象
            return() => {
                console.log(this);
            }   //指向箭头函数被定义区域的this
            // 也就是:指向fn的this
        }
        const obj = {name:'alieen Gu'};
        fn.call(obj);  //将fn函数内部的this指向obj对象,同时执行fn()函数
       
 const resFn = fn.call(obj); //用resFn 来接住fn函数执行的返回结果,也就是上面用箭头函数语法写的匿名函数
        resFn(); //调用上面用箭头函数语法写的匿名函数
        //看看输出的this是谁,结果还是 {name:'alieen Gu'}

箭头函数面试题

var obj = {
            age:18,
            name: 'alieen Gu',
            ski:() => {
                alert(this.age);  //obj对象不产生作用域
                //这里的箭头函数实际上被定义在了全局作用域下,window下面没有age,
                //所以输出的是undefined 
            }
        }
        //注:作用域分为:1、全局作用域 2、函数作用域
        //ES6新增了块级作用域
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值