zoukankan      html  css  js  c++  java
  • 初学者自学笔记-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';
      }
    }

    ……

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

    ……

    每个人都是攀登者,要么努力攀上顶峰,要么失败跌回低谷。停下不是失败,而是在蓄力!
  • 相关阅读:
    正则表达式基础
    js正则:零宽断言
    IE读取并显示本地图像文件的方法
    转:FileReader详解与实例---读取并显示图像文件
    mysql基础(mysql数据库导入到处) 很基础很实用
    如何禁止页面滚动
    转:字符编码到底是怎样的 有空看
    自己写的一个简单的Tab类
    mysql学习总结
    mysqld守护进程
  • 原文地址:https://www.cnblogs.com/hanbaospace/p/5531182.html
Copyright © 2011-2022 走看看