ES6 箭头函数下的this指向

2018-07-23 06:16:35来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

  在javscript中,this 是在函数运行时自动生成的一个内部指针,它指向函数的调用者。

  箭头函数有些不同,它的this是继承而来, 默认指向在定义它时所处的对象(宿主对象),而不是执行时的对象。 

    var name = "window";
    var test = {
        name:"demo",
        // 传统函数
        getName1: function(){
            console.log(this.name);  // demo
            var that = this;
            setTimeout(function(){
                console.log(this.name);  // window
                console.log(that.name);  // demo
            },500)
        },

        // 箭头函数-作为异步回调
        getName2:function(){
            setTimeout(()=>{
                console.log(this.name)  // demo
            },500)
        },

        // 箭头函数-作为直接执行的方法
        getName3:()=>{
            console.log(this.name)  // window
        }
    };

  如上getName3(),将箭头函数作为直接执行的方法来写时要特别小心,它的this会直接指向window。

  

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Vue+axios统一接口管理

下一篇:超好用超短的小程序请求封装