当前位置 > it书童 > js > 正文

js 中 this 的指向问题

js it书童 2020-02-22 11:48:53 0赞 0踩 115阅读 0评论

this 的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定,,一般情况下 this 的最终指向的是那个调用它的对象

  1. 全局作用域或者普通函数中 this 指向全局对象 window(注意定时器里面的 this 指向 window)

  2. 方法调用中谁调用this指向谁

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

<button>点击</button>
<script>
    // this 指向问题 一般情况下this的最终指向的是那个调用它的对象
    // 1. 全局作用域或者普通函数中this指向全局对象window( 注意定时器里面的this指向window)
    console.log(this);
    function fn() {
        console.log(this);
    }
    window.fn();
    window.setTimeout(function() {
        console.log(this);
    }, 1000);
    // 2. 方法调用中谁调用this指向谁
    var o = {
        sayHi: function() {
            console.log(this); // this指向的是 o 这个对象
        }
    }
    o.sayHi();
    var btn = document.querySelector('button');
    btn.addEventListener('click', function() {
            console.log(this); // 事件处理函数中的this指向的是btn这个按钮对象
        })
    // 3. 构造函数中this指向构造函数的实例
    function Fun() {
        console.log(this); // this 指向的是fun 实例对象
    }
    var fun = new Fun();
</script>
转载须注明出处:https://www.itshutong.com/articles/465/the-direction-of-this-in-js
标签: web api
关于我
一个文科出身的程序员,追求做个有趣的人,传播有价值的知识,微信公众号主要分享读书思考心得,不会有代码类文章,非程序员的同学请放心订阅
发表评论
我有句话,不知当讲不当讲?
要讲之前请先 登录