美文网首页
关于JavaScript的this指向问题,精辟!!!

关于JavaScript的this指向问题,精辟!!!

作者: 小毛蛋_ | 来源:发表于2018-03-23 10:59 被阅读0次

    偶然间在掘金上发现一片分享,差点颠覆我js观,我发现我对js中的this指向问题还是存在误解,知其然并不知其所以然!!蓝瘦

    记一篇关于this指向的前端随缘心得

    分享中虽然反复强调一句话this 永远指向最后调用它的那个对象
    我觉得要是在这样话上在圈三个重点会更好

    this 永远指向【最后】【调用】它的那个【对象】

    function foo() {
        console.log(this.a)
    }
    
    function test(fn) {
        fn(); 
    }
    
    var a = 20;
    var obj = {
        a: 10,
        getA: foo
    }
    
    test(obj.getA);
    
    
    //so, 最后-调用-对象是哪个?
    //显而易见
    //test -> fn() -> obj.getA ->  console.log(this.a)
    //最后是在fn中调用,在找当前的作用域对象,window
    //result  20
    
    //这个例子很有意思
    var obj = {
        a: 20,
        getA: function() {
            setTimeout(function() {
                console.log(this.a)
            }, 1000)
        }
    }
    
    obj.getA();
    
    //resul 为 undefined ???
    //现在结合上面那句话,最后-调用?谁调用setTimeout
    //最后并不是obj,而是window对象,所以this指向window
    

    相关文章

    this、apply、call、bind
    this

    相关文章

      网友评论

          本文标题:关于JavaScript的this指向问题,精辟!!!

          本文链接:https://www.haomeiwen.com/subject/ybbtcftx.html