事件对象与环境对象

news2025/3/10 21:28:28

一、事件对象

        事件对象里有事件触发时的相关信息,包括属性和方法。注册时间中,回调函数的第一个参数就是事件对象,一般命名为event、ev、e。其中e.target是主要对象,target是事件源对象,即当前触发元素。

<button id="btn" click="btnClick">点击</button>

const btnList = document.getElementById("btn")
btnList.addEventListener("click",(e) => {
  console.log(e)
})

 

二、环境对象-this

        环境对象知道是函数内部特殊的this,它指向一个对象,并且受当前环境的影响。函数的调用方式不同,this的指代对象不同。

        1、this的指向问题

                a、全局作用域

                        全局作用域中,this指代的是window对象。

<script>
  console.log(this)
</script>

 

                 b、普通函数中

                        this取决于谁调用我,谁调用我,我就指向谁

<script>
  var obj = {
    fn1:function() {
      console.log(this); 
    },
    fn2:function(){
      fn3() 
    }
  }
  function fn3() {
    console.log(this); 
  }
  fn3(); // this->window
  obj.fn1(); // this->obj
  obj.fn2(); // this->window
</script>

 

                 c、箭头函数中

                        箭头函数没有自己的this,箭头函数中的this,就是上下文中的this。

                        箭头函数没有自己的this,因此箭头函数不能做构造函数。

<div>test</div>
<script> 
  var div = document.querySelector('div'); 
  var o = {
      a: function () {
          var arr=[1];
          // 就是定义所在对象中的this
          // 这里的this—>o
          arr.forEach(item=>{
            //所以this -> o
            console.log(this);
          })
      },
      //这里的this指向window o是定义在window中的对象
      b: () => {
        console.log(this);
      },
      c: function() {
        console.log(this);
      }
  }
  div.addEventListener('click',item => {
      console.log(this); // this->window 这里的this就是定义上文window环境中的this
  });
  o.a(); // this->o
  o.b(); // this->window
  o.c(); // this->o 普通函数谁调用就指向谁
</script>

 

                d、事件绑定中

                        事件绑定中this指向事件源 

<button id="btn">点击</button>

<script> 
  var btn = document.getElementById('btn'); 
  btn.addEventListener("click",function(){
    console.log(this)
  })
</script>

                e、定时器中

                        定时器中的this指向window,因为定时器中的函数是回调函数,

                        回调函数的this指向window。

<script> 
  setTimeout(function() {
    console.log(this)
  },1000)
</script>

                f、构造函数中

                        构造函数配合new使用,而new关键字会将构造函数中的this指向实例化对象。

参考链接:https://blog.csdn.net/chen_junfeng/article/details/109235442 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1495614.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Midjourney入门:AI绘画真的能替代人类的丹青妙笔吗?

名人说&#xff1a;一花独放不是春&#xff0c;百花齐放花满园。——《增广贤文》 作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、简要介绍1、Midjourney2、使用方法 二、绘画1、动物类2、风景类3、动漫类4、艺…

Unity:Animation 三 Playable、ImportModel

目录​​​​​​​ 1. Playables API 1.1 Playable vs Animation 1.2 Advantages of using the Playables API 1.3 PlayableGraph Visualizer 2. Creating models outside of Unity 2.1 Preparing your model files for export 2.1.1 Scaling factors 2.1.2 优化模型文…

腾讯云2核2G3M轻量应用服务器优惠价格61元一年

腾讯云2核2G3M轻量应用服务器优惠价格61元一年&#xff0c;200GB月流量、40GB SSD云硬盘。 一张表看懂腾讯云服务器租用优惠价格表&#xff0c;一目了然&#xff0c;腾讯云服务器分为轻量应用服务器和云服务器CVM&#xff0c;CPU内存配置从2核2G、2核4G、4核8G、8核16G、4核16…

网络编程:数据库实现增删改

1.数据库实现增删改 程序代码&#xff1a; 1 #include<myhead.h>2 //定义添加数据函数3 int do_add(sqlite3*ppDb)4 {5 //准备sql语句6 int add_numb;//工号7 char add_name[20];//姓名8 double add_salary;9 printf("请输入要添加的工号:&quo…

网康科技 NS-ASG 应用安全网关 SQL注入漏洞复现(CVE-2024-2022)

0x01 产品简介 网康科技的NS-ASG应用安全网关是一款软硬件一体化的产品,集成了SSL和IPSec,旨在保障业务访问的安全性,适配所有移动终端,提供多种链路均衡和选择技术,支持多种认证方式灵活组合,以及内置短信认证、LDAP令牌、USB KEY等多达13种认证方式。 0x02 漏洞概述 …

ArmSoM规划开发基于RK3576的开发套件

ArmSoM正计划推出一款新的产品&#xff0c;这款产品将采用强大的RK3576芯片。 本文将为您介绍我们的新产品搭载的RK3576性能参数&#xff0c;以及它如何为您提供卓越的性能和功能。 RK3576处理器 RK3576处理器是一款强大的处理器&#xff0c;具备出色的性能和多样化的功能&a…

机器学习的边界与实际应用

目录 前言1 机器学习的广泛适用性1.1. 利用输入输出映射1.2. 大量的可用数据 2 机器学习能做的事情举例2.1 自动驾驶2.2 用户请求处理2.3 有大量数据的医学影像诊断 3 机器学习不能做的事情举例3.1 市场分析报告3.2 感同身受的邮件回复3.3 手势意图判断3.4 少量数据的医学影像诊…

NotePad++下载

notepad官网地址是https://notepad-plus-plus.org/。提供了许多强大的功能和工具&#xff0c;使其成为许多程序员和开发人员的首选工具。 Notepad 是一款广受欢迎的开源文本编辑器&#xff0c;它提供了许多强大的功能和工具&#xff0c;使其成为许多程序员和开发人员的首选工具…

Hadoop配置日志的聚集——jobhistory不显示任务问题

问题&#xff1a; 一开始job history是正常的&#xff0c;配置了日志的聚集以后不管做什么任务都不显示任务&#xff0c;hdfs是正常运行&#xff0c;而且根据配置步骤都重启过了。 下面先po出日志聚集的操作步骤&#xff0c;再讲问题 1.配置yarn-site.xml cd $HADOOP_HOME/e…

URL?后参数有特殊字符问题

前端对于URL的参数不做处理 不处理、用URLDecoder.decode()处理、用URLEncoder.encode()处理、用URLEncoder.encode()处理后再用URLDecoder.decode()处理 结果 前端对于URL的参数用encodeURIComponent(‘XF-OPPZZD-26*316’)处理 结果 前端不处理有&字符时 结果会把后…

阿里云轻量应用服务器2核4G5M优惠价格165元一年,252元15个月、756元3年

阿里云轻量应用服务器2核4G5M优惠价格165元一年&#xff0c;252元15个月、756元3年&#xff0c;500GB月流量&#xff0c;60GB SSD云硬盘。 一张表看懂腾讯云服务器租用优惠价格表&#xff0c;一目了然&#xff0c;腾讯云服务器分为轻量应用服务器和云服务器CVM&#xff0c;CPU…

借助 Terraform 功能协调部署 CI/CD 流水线-Part 1

在当今快节奏的开发环境中&#xff0c;实现无缝、稳健的 CI/CD 流水线对于交付高质量软件至关重要。在本文中&#xff0c;我们将向您介绍使用 Bitbucket Pipeline、ArgoCD GitOps 和 AWS EKS 设置部署的步骤&#xff0c;所有步骤都将利用 Terraform 的强大功能进行编排。在Part…

互联网智慧工地源码,“互联网+建筑大数据”SaaS微服务架构,支持PC端、手机端、数据大屏端

智慧工地源码&#xff0c;支持多端展示&#xff08;PC端、手机端、平板端&#xff09;SaaS微服务架构&#xff0c;项目监管端&#xff0c;工地管理端源码 智能时代的风暴已经融入了我们生活的每个方面&#xff0c;智能手机、iPad等移动终端智能设备已经成为我们生活的必需品。智…

[C语言]——分支和循环(3)

目录 一.while循环 1.if 和 while的对比 2.while语句的执行流程&#xff1a; 3.while循环的实践 4.练习 二.for循环 1.语法形式 2.for循环的执行流程 3.for循环的实践 4.while循环和for循环的对比 5.练习 三.do-while循环 1.语法形式 2.do while循环的执行流程 3…

ES单节点部署

ES 拉取镜像 docker pull elasticsearch:7.10.1启动容器 docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -e "ES_JAVA_OPTS-Xms1g -Xmx1g" -v /es_data:/usr/share/elasticsearch/data --name es 558380375f1a注&#xff1a…

覆盖element-ui的el-menu样式记录:背景图片、菜单图标、菜单高亮与鼠标悬浮高亮、调整子菜单等样式

页面中修改el-menu 设置background-color"transparent"&#xff0c;menu菜单下的背景图片则能正常显示了 <el-menuclass"el-menu-demo"mode"horizontal"background-color"transparent"><el-menu-item index"1">…

Java基于微信小程序的校园失物招领小程序

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

app逆向-ratel框架-AES,DES,MD5,SHA1加密算法java hook程序

一、前言 AES&#xff08;高级加密标准&#xff09;、DES&#xff08;数据加密标准&#xff09;、MD5&#xff08;消息摘要算法5&#xff09;和SHA-1&#xff08;安全哈希算法1&#xff09;都是常见的加密算法&#xff0c;用于数据加密和哈希计算。 二、加密算法实现 1、创建…

基于单片机的火灾报警系统设计

目 录 摘 要 I Abstract II 引 言 1 第1章 系统整体方案设计 3 1.1 系统方案的选择 3 1.2 系统方案设计 3 1.2.1 系统概述 3 1.2.2 系统框图 4 第2章 系统硬件设计 5 2.1单片机STC89C52 5 2.1.1 最小系统电路 6 2.2 显示电路 7 2.2.1 显示方案的选择 7 2.2.2 1602液晶显示 7 2…

gan, pixel2pixel, cyclegan, srgan图像超分辨率

文章目录 1.gan2.DCgan3.cgan4.pixel2pixel&#xff08;Image-to-Image Translation with Conditional Adversarial Networks&#xff09;5.CycleGAN6.Deep learning for in vivo near-infrared imaging11..Photo-Realistic Single Image Super-Resolution Using a Generative …