zoukankan      html  css  js  c++  java
  • this指向问题

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

    现阶段,我们先了解一下几个this指向

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

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

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

    <!DOCTYPE html>
    <html lang="en">

    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>

    <body>
        <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.onclick = function() {
            //     console.log(this); // this指向的是btn这个按钮对象

            // }
            btn.addEventListener('click', function() {
                    console.log(this); // this指向的是btn这个按钮对象

                })
                // 3. 构造函数中this指向构造函数的实例
            function Fun() {
                console.log(this); // this 指向的是fun 实例对象

            }
            var fun = new Fun();
        </script>
    </body>

    </html>
  • 相关阅读:
    几个常用ORACLE运维监控的SQL语句
    Oracle 字符集的查看和修改
    建立表空间、用户、导出导入
    android get post提交与获取数据
    javaweb 路径问题
    java web分页
    用java调用oracle存储过程总结(转别人的。。。)
    java web乱码问题原因及解决方法
    servlet笔记
    C#中App目录
  • 原文地址:https://www.cnblogs.com/yanlei369343/p/13927878.html
Copyright © 2011-2022 走看看