• 初学者自学笔记-this的用法


    请注意:这是自学者的笔记,只是个人理解,并非技术分享,如有错误请指正。

    "this"的意思,简单而言,就是"这个",也就是"当前"。谁调用它,他就会指向谁。
    在scirpt内直接调用,比如 alert(this),其实也可以写为window.alert(this),输出的就会是window;

    可以这样理解:

    写一个按钮:

    <input id="btn1" type="button" value="按钮"/>


    在script下定义一个变量
    var oBtn = document.getElementById("btn1");

    定义一个函数
    function fn() {
      alert(this);
    }

    定义一个点击事件:

    情况1:oBtn.onclick = fn;
    首先,我们需要明确一点,函数只有当被调用的时候才能执行。
    网页加载的过程就是读取代码的过程,当代码读到oBtn.onclick = fn;的时候,会读取到fn()执行的前提是oBtn.onclick,也就是按钮的点击事件才会让fn()执行,此时alert(this)中输出的this指的是让它执行的botton


    情况2:oBtn.onclick = fn();

    首先,我们需要明确一点,函数只有当被调用的时候才能执行。而任何函数如果写成fn();这种形式,这本身就是一种调用。

    网页加载的过程就是读取代码的过程,当代码读到oBtn.onclick = fn();的时候,fn()会直接执行,让它执行的并非button,因为我们定义的是点击事件才执行,此时让fn()执行的是window。也就是window.fu();

    可以这样简单理解:当this放在放个函数中使用的时候,谁让这个函数调用,这里的this指向的就是谁。

    实例:

    //存放div的数组

    var aDiv = document.getElementsByTagName('div');

    //鼠标滑过当前div的时候,给当前div添加display:none; 使图片消失

    for (var i=0; 1<100; i++){
      aDiv[i].onmouseover = function (){
        this.style.display = 'none';
      }
    }

    ……

    请注意:这是自学者的笔记,只是个人理解,并非技术分享,如有错误请指正。

    ……

    每个人都是攀登者,要么努力攀上顶峰,要么失败跌回低谷。停下不是失败,而是在蓄力!
  • 相关阅读:
    KUDU 介绍
    Redis是什么?什么作用?优点和缺点
    数据库的种类有哪些?
    oracle 存储过程之游标(loop)使用
    JsHelper.cs
    MsSqlHelper.cs
    PLSQL操作Oracle创建用户和表(含创建用户名和密码)
    ASP.NET开发--三层架构
    oracle数据库之数据插入、修改和删除
    IDEA 搭建SSM框架详细教程以及token本地运行环境常遇到的问题
  • 原文地址:https://www.cnblogs.com/hanbaospace/p/5531182.html
Copyright © 2020-2023  润新知