JavaScript入门到精通十七(环境对象、回调函数、tab切换)

发布时间:2026/10/10 8:50:35

JavaScript入门到精通十七(环境对象、回调函数、tab切换) 一.什么是环境对象函数内部特殊的变量this每个函数里边都有this它代表着当前函数运行时所处的环境body script function fn(){ console.log(this); // this指的是window对象 } window.fn(); /script /bodybody button点击/button script const btn document.querySelector(button); btn.addEventListener(click,function(){ console.log(this); // this指的是button元素(调用者) }) /script /body1.函数的调用方式不同this指代的对象也不同2.谁调用this就是谁是判断this指向的粗略规则3.直接调用函数其实相当于是window.函数所以this指代windowbody button点击/button script const btn document.querySelector(button); btn.addEventListener(click,function(){ this.style.backgroundColor red; }) /script /body二.什么是回调函数如果将函数A做为参数传递给函数B时我们称函数A为回调函数body script // 函数A function fn(){ console.log(我是回调函数); } // 函数B setInterval(fn,1000); //fn传递给setInterval函数fn就是回调函数 /script /bodybody button点击/button script const btn document.querySelector(button); btn.addEventListener(click,function(){ console.log(我也是回调函数); // 每点击一次回调一次 }) /script /body1.回调函数本质还是函数只不过把它当成参数使用2.使用匿名函数做为回调函数比较常见三.tab切换鼠标经过不同的选项卡底部可以显示不同的内容style .box{ width: 500px; height: 450px; } .tab{ height: 50px; line-height: 50px; text-align: center; background-color: #a7d8b8; display: flex; justify-content: center; align-items: center; } .tab ul{ list-style: none; margin-left: 10px; } .tab ul li{ width: 80px; float: left; margin-right: 20px; border-radius: 20px; } .tab ul li.active1{ background-color: #3bc4a6; color: #fff; } .content{ height: 400px; } .item{ height: 400px; display: none; } .item.active2{ display: block; background-color: #ccc; } .item img{ width: 100%; height: 100%; } /style body div classbox div classtab h4tab选项卡/h4 ul li classactive1选项卡1/li li选项卡2/li li选项卡3/li /ul /div div classcontent div classitem active2 img src../images/1.jpeg alt /div div classitem img src../images/2.jpeg alt /div div classitem img src../images/3.jpeg alt /div /div /div script const ls document.querySelectorAll(.tab ul li); const items document.querySelectorAll(.content .item); console.log(ls); //拿到所有li元素 for(let i0;ils.length;i){ ls[i].addEventListener(mouseenter,function(){ document.querySelector(.active1).classList.remove(active1); // 移除所有active1类名 this.classList.add(active1); // 给当前鼠标经过的li添加active1类名 document.querySelector(.active2).classList.remove(active2); // 移除内容区的active2类名 items[i].classList.add(active2); // 显示与当前选项卡对应的内容 }) } /script /body初始化默认效果鼠标移动效果
延伸阅读

更多相关文章

2026/10/10 8:50:35

纯本地AI视频分析工具:离线抽帧、视觉理解与语音转写实战

1. 为什么我要折腾一个纯本地视频分析工具最开始动这个念头,是因为手头攒了一堆录屏素材和家庭影像,想从里面快速找出"有人说话""画面里有猫""出现某个特定物体"的片段。丢到在线服务上处理吧,上传慢、隐私心里…

2026/10/10 8:50:35

智慧农场3D可视化:基于HT引擎的零代码搭建实践

最近一个做农业信息化的老朋友找我,说手上接了个智慧农场项目,设备采购、传感器布点都谈好了,结果客户验收第一句话是:“能不能先给我看一块3D大屏?”我当时就笑了,这太真实了。农业数字化项目做到最后&…

2026/10/10 8:50:35

GraphRAG实战:图数据库+大模型如何破解企业知识问答难题

图数据库大模型:GraphRAG如何解决大模型落地难题,让AI真正走进产业做AI产业落地这两年,有一个感受越来越强烈:大模型本身不缺能力,缺的是“懂业务”的入口。你要让它回答一个通用问题,它能说得头头是道&…

2026/10/10 9:46:05

基于CNN人脸识别的驾驶员疲劳检测与预警系统设计与实现

简介:基于卷积神经网络的人脸识别驾驶员疲劳检测与预警系统是一份完整的Python毕业设计资源,面向计算机视觉与深度学习方向的开发者、在校学生,尤其适合需要完成课程设计或毕业项目的读者。系统通过摄像头采集驾驶员图像,经过图像…

2026/10/10 9:46:05

从零构建可交付的skills组合:底座型技能与实操避坑指南

1. 从“skills”这个词说起:为什么它突然成了硬通货“skills”这个词,放在三五年前,大家聊起来多半还是简历上那一栏“专业技能”,写的是“熟练掌握Office”“英语CET-6”这类东西。但现在你再去看各种社区、招聘需求、甚至朋友之…

2026/10/10 9:46:05

PHP+Autojs云控系统源码拆解:多设备自动化管理实践

去年因为项目需要,我要同时维护几十台安卓设备跑自动化任务,试了几家云控平台,要么按点位收费,要么闭源不好扩展。正好有人提到一套“PHP Autojs”组合的开源云控系统框架源码,这个搭配第一眼确实有点违和——Autojs …

2026/10/10 9:46:05

软件测试风险矩阵实战:从打分标准到用例分层与自动化优先级

1. 风险矩阵到底解决什么问题:三个真实场景看懂它的价值先说我自己的经历。几年前我刚带一个测试小组,赶上大版本发布,需求排期满到溢出,开发和产品每天都在互相“加塞”。我当时做得最多的不是写用例,而是被拉去开各种…

2026/10/10 9:41:04

influxdb-nodejs 客户端:Node.js 时序数据写入查询实战

简介:这是一份 influxdb-nodejs 资源包,即用 Node.js 编写的 InfluxDB 客户端源码,面向需要读写时序数据、在 Node 或前后端项目中集成 InfluxDB 的 JavaScript 开发者。内含初始化、写入、读取、批量写入、查询等典型调用的实战示例&#xf…

2026/10/10 7:31:36

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/9 20:15:56

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/8 6:05:44

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 0:04:53

从逻辑门到计算机:数字电路核心原理与全加器搭建实战

如果你拆过一台旧电脑的主板,盯着那些黑乎乎的小芯片看上一会儿,可能会冒出同一个疑问:这堆引脚密集的元件,到底是怎么“变”出那么复杂的应用的?答案并不在某个神秘的部件里,而是在所有芯片内部都在反复使…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑