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';
      }
    }

    ……

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

    ……

    每个人都是攀登者,要么努力攀上顶峰,要么失败跌回低谷。停下不是失败,而是在蓄力!
  • 相关阅读:
    memcached与.NET的融合使用(二)
    memcached与.NET的融合使用(一)
    使用window2003安装邮件服务器最新实际操作记录
    2014 -> 2015
    数据挖掘入门 资料和步骤
    CSDN 论坛招聘区是不是有潜规则?在Cnblog招个人试试...
    C#薪水和前途
    面试准备
    面试准备
    面试准备
  • 原文地址:https://www.cnblogs.com/hanbaospace/p/5531182.html
Copyright © 2011-2022 走看看