为了账号安全,请及时绑定邮箱和手机立即绑定

(es3,es5)与es6的this绑定区别

标签:
Html5 JavaScript

ES3 ES5 中的函数this绑定区别说区别之前先看如下两段代码

代码段一

es3与es5中函数调用this的写法如下

{
    var factary =function()
    {
       this.a="a";
        this.b="b";
       this.c="c" ;
        this.d={
           a:"a1",
            e: function(){
                console.log(this.a)    
            }
        }
    }
    console.log(new factary().d.e())
}//输出的是a1

复制代码

代码段二

es6中箭头函数调用this的写法如下

{
    var factary =function()
    {
       this.a="a";
        this.b="b";
       this.c="c" ;
        this.d={
           a:"a1",
            e: =>{
                console.log(this.a);
            }
        }
    }
    console.log(new factary().d.e())
}

输出的是a
输出的结果你们猜到了吗

两段代码的不同之处在于一个使用function定义的函数
另外的一个是用箭头函数()=>{}定义的

两段代码的输出结果如下

分析总结:

es3和es5中this指的是该函数被调用的对象 在代码段一中d调用了e() 则this.a指的就是d这个对象里面的a输出的就是a1;

简单说在es6中调用箭头函数this.a中this指的就是当前对象 factary,所以 this.a输出的是a;

官方点说 ES6的箭头函数 箭头函数的this指的是定义时this的指向,e在定义时,this指向的是d被定义时的函数

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
13
获赞与收藏
115

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消