this指向问题

知识梳理

// 1 一般情况下 this的最终指向都是 调用它的对象

// 2 全局作用域  普通函数 定时器 的this都指向了 window对象

// 3 构造函数的this 指向自己的实例
<script>

// 1 全局作用域 普通函数 定时器 的this都指向了全局对象 window
    console.log(this);//全局作用域:返回 Window
    function fun(){
        console.log(this);//普通函数 返回 Window 
    }
    window.fun();//window调用了函数
    window.setTimeout(function () {
        console.log(this);//window 也指向了window对象
    },1000);

    // 2 方法调用中this执向了 调用它的对象
    var obj = {
        say: function () {
            console.log(this);
        }
    }
    obj.say();// {say: ƒ} 指向了对象obj 因为obj调用了它

    // 3 构造函数的this指向构造函数的实例
    function Fun() {
        console.log(this);//this指向 demo 实例对象
    }
    var demo = new Fun();
</script>
原文地址:https://www.cnblogs.com/fuyunlin/p/14454064.html