this指向基础

78 阅读1分钟
** this指向 一般情况下this的最终指向的是调用它的那个对象**
1.全局作用域或者普通函数中this指向全局对象window(定时器里this指向window)
    console.log(this);   //顶级对象  ----->window

    function fn() {
        console.log(this);            // ----->window
    }
    window.fn();

    window.setTimeout(function () {
        console.log(this);             // ----->window
    }, 1000)
2.方法调用中谁调用this指向谁
    var obj = {
        lisi: function () {
            console.log(this);         //----->obj
        }
    }
    obj.lisi();

    var btn = document.querySelector("button");
    btn.onclick = function () {
        console.log(this);              //------>button
    }
    btn.addEventListener('click', function () {
        console.log(this);              //------>button
    })

3.构造函数中this指向构造函数的实例

    function Fun() {
        console.log(this);               //------>指向new实例化对象foo
    }
    var foo = new Fun();