js 基础补充3
1. 闭包
在函数内部定义的函数,可以访问改函数的属性和方法
私有属性 延长变量的生命周期,更好的避免命名冲突
缺点:内存消耗比较大,不建议频繁使用
2. js 原型 原型链
访问对像的属性方法,不光会在对象上查找还会在原型上查找 每个对象都有一个原型对象
指向构造函数的原型protoType
原型对象也存在原型,类推一级一级给上查找,形成了原型链
Person 实例对象 p1
p1.__proto__ === Person.prototype
Person.prototype.__proto__ === Object.prototype
Object.prototype.__proto__ === null
Object.__proto__ === Function.prototype
3. js 继承
不使用Object.create()
原型链 child.prototype = new Parents() 指向同一内存地址互相影响
构造函数 function child(){Parents.call(this)} 只能反问函数内部定义的属性方法 不是完整的原型链
组合 1+2 调用两次方法 影响性能
使用Object.create()
原型式 内存地址互相影响
寄生 不能继承原型是上的方法
整体组合 类似 ES6 新增的 extends
4. this
箭头函数的this 在创建时候已经确认了
绑定方式
默认 没有其他规则 this 默认指向全局对象(除严格模式下)
隐式绑定是指通过对象调用函数时,this 指向调用该函数的对象。
new 绑定是指通过 new 关键字来创建一个新对象时,this 指向新创建的对象。
显示(apply bind call ) call 返回的函数 列表
this在不同上下文 指向不同属性方法
apply call bind 的区别
三者都是用于显示的改变this指向的
第一个参数表示this指向的对象,若为空/null 则指向windows
第二个参数 apply 以数组形式传递,call 以参数列表的形式传递 两者都只能一次传递 bind可以多次传递
apply call 都是立即执行 (一次性修改)bind 返回修改this后的函数,需要手动执行(永久修改)
function test(...args){console.log(...args)console.log(this.name,this.age);} const _obj = {name:'lili',age:18 } test.apply(_obj,[1,2,3]) test.call(_obj,1,2,3) const newFun = test.bind(_obj,1) newFun(2,3)
5. instanceof typeof 区别
instanceof(实例是否属于 对象 没法准确判断基本数据类型) typeof (基本数据类型 不能区分数组和对象)
可以使用Object.prototype.toString.call() 判断
6.new 操作符干了什么(new 操作符用于创建构造函数的实例对象)
1.创新一个新的对像
2.把对象的原型绑定到构造函数的原型
3.将构造函数中的 this
绑定到新创建的对象
5. 构造函数没有return ,则返回新对象
手写 new 操作符
7. 执行上下文
执行上下文: 代码运行时所在的环境
全局 ,函数 ,eval Eval 函数执行时会创建一个 eval 执行上下文
创建阶段 (变量方法 this 作用域链) 词法环境 提供变量函数声明(静态) ,变量环境根据这些信息存储管理值 =>
执行阶段 代码执行 =>
回收 执行上下文出栈
执行栈 先进后出
8.事件
事件:用户和网页交互的结果
事件流:事件在页面传递顺序
三个阶段
捕获阶段 (从大到小) -》目标阶段-》冒泡阶段 (小小到大
事件模型:定义如何处理事件
DOM Level 0 和 DOM Level 2 是两种主要的事件模型。
直接在标签上添加On-Event 例如OnClick 不能移除 不能重复使用
利用 addEventListener('click',()=>{}) 一次添加定多个事件处理程序
事件代理
把一个/或一组响应事件委托给另一个事件 (在冒泡阶段),真正绑定的是父元素
场景 : 监听多个li变化,把事件绑定在ul上
优点:动态绑定减少工作量,减少整个页面所需内存,提高效率
避免对鼠标移动绑定,需要计算详细位置,消耗更大 focus blur 没有冒泡机制,不能代理
事件循环
相关文章:

js 基础补充3
1. 闭包 在函数内部定义的函数,可以访问改函数的属性和方法 私有属性 延长变量的生命周期,更好的避免命名冲突 缺点:内存消耗比较大,不建议频繁使用 2. js 原型 原型链 访问对像的属性方法,不光会在对象上查找还会在…...

Invalid bean definition with name ‘employeeMapper‘ defined in file
参考以下博客: <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.7</version> </dependency> 总结: 1. 拉取老项目的时候要特…...

悦享驾驶,乐在旅途,首选江铃集团新能源易至EV3青春版
金秋时节,天高气爽,正是出游的好时节。不论是家庭自驾游,还是朋友结伴出游,一款好看又好开的车绝对是提升旅行品质的重要因素。江铃集团新能源易至汽车EV3青春版,凭借其超高安全性、便捷操作性、卓越性能,成…...

测试WIFI和以太网的TCP带宽、UDP带宽和丢包率、延时
一、测试TCP、UDP的带宽 作为服务器:iperf3 -s -i 1 (或者用CloudCampus软件,或者iperf magic) Wi-Fi 发送、接收吞吐率的测试_magic iperf-CSDN博客 车机作为iperf3服务器,电脑作为iperf3得客户端,分别…...

redis 第155节答疑 源码分析Hash类型ziplist结构和zlentry实体解析
155属性 zlbytes zltail zllen entryX zlend 类型 uint32 t uint32 t uint16 t 列表节点 uint8 t 长度 4字节 4字节 2字节 不定 1字节 用途 记录整个压缩列表占用的内存字节数:在对压缩列表进行内存重分配,或者计算 zlend 的位置时使用 记录压缩列表表尾节点距离压缩…...

IDE使用技巧与插件推荐
集成开发环境(IDE)是开发者日常工作中的重要工具,合理使用IDE和合适的插件,能大大提高开发效率。本文将分享常见IDE(如VS Code、IntelliJ IDEA等)的一些高效使用技巧,以及开发过程中常用的插件推…...

1020接口测试面试题随记
1.测试中对于上下游承接的业务是怎么处理的 针对上下游承接的业务,我会采取以下措施进行处理:首先,明确上下游系统的接口和依赖关系,确保理解数据流和业务逻辑的连接点。其次,进行接口测试,验证上下游系统…...

Zotero7最新(2024)翻译问题——配置 百度API翻译
在使用翻译之前,首先要确保已经安装了插件:Translate for Zotero 关于插件的安装可以参考这篇文章: Zotero7最新(2024)安装、配置步骤-CSDN博客 接下来进入正题。 当使用Zotero7对英文文献翻译时,可能会…...

python程序设计员—练习笔记
目录 基础处理 字符串列表字典运算符正则表达式re库requestsBeautiful Soupjieba库分词模式基于TF-IDF算法的关键词提取 基于TextRank算法的关键词提取pandas 打开有多个表的.xlsx文件 基础处理 字符串 str_ str_.lower()lower()函数:将字符中的大写字母转换成小…...

1.DBeaver连接hive数据库
1.hive开启远程服务,linux中直接输入:hiveserver2 2.解压dbeaver和hive-jdbc-2.1.1.zip 3.双击打开 4.数据库,新建连接 5.搜索hive 6.配置参数 7.编辑驱动设置 8.添加jar包 9.测试连接 10.右击,新建sql编辑器 11.执行sql 12.调整字…...

CODESYS随机动态图案验证码制作详细案例(三)
#使用CODESYS软件模仿网页端动态图案验证码的制作详细案例# 前言: 通过上篇图案验证码的实际测试,我们已经完成了该案例的制作,但是在项目应用中,我们想对该功能直接调用,就需要将具有一定功能的程序代码或可视化进行封装成库文件。我们熟知,CODESYS有丰富的库文件,有…...

NodeJS 使用百度翻译API
在大数据处理中,经常需要大批量地翻译短小的文字,使用在线翻译平台的API 调用能够大幅度提高效率。 最近尝试了一下。 第一步在百度翻译开放平台注册 百度翻译开放平台 (baidu.com) 申请APPID 和SECRET加密码 源代码(mjs) …...

摩熵数科数据产品阵容BCPM
摩熵数科基本介绍 摩熵数科(成都)医药科技有限公司BCPMdata Pharma Technology (Chengdu)Co.,Ltd以“探索生命科学数据本源,构建全产业链数据应用生态”为愿景,致力于成为生命科学领域全球领先的数据系统与…...

ros2 .idl文件生成C、C++代码
一、包目录结构 rosidl_generator_c 依赖rosidl_cmake、rosidl_typesupport_interface、ament_index_python、rosidl_parser rosidl_generator_cpp 依赖 rosidl_parser、rosidl_runtime_cpp、rosidl_generator_c rosidl_parser :The parser for .idl ROS interfa…...

scrapy的xpath在控制台可以匹配,但是到了代码无法匹配(无法匹配tbody标签)
问题 使用xpath-helper可以匹配到,然后scrapy却无法 然后写入html来看看 发现根本就没有tbody,太可恶了 解决 方法1 不使用tbody就可以 方法2 使用或运算符 | big_list response.xpath("//div[classChannelClasssNavContent]/table/tbody/tr[1]/td/table/tbody/t…...

OpenCL内存模型
OpenCL将内存划分成主机内存和设备内存。主机内存可在主机上使用,其并不在OpenCL的定义范围内。使用对应的OpenCL API可以进行主机和设备的数据传输,或者通过共享虚拟内存接口进行内存共享。而设备内存,指定是能在执行内核中使用的内存空间。…...

Commvault Cloud如何改变网络弹性游戏规则?
近段时间有点被Commvault与AWS“刷屏”了:9月,Commvault宣布将收购AWS关键云数据保护领域技术领导者Clumio公司;10月,Commvault宣布将在AWS上推出Commvault Cloud网络弹性平台。 种种偶然背后往往隐藏着必然。作为混合云网络弹性和…...

echarts环形饼图自定义边框、标题及图例
目录 1、官网找示例 2、初步改造有个雏形 3、细节改造和优化 4、全部代码 5、原始效果和最终效果对比 看下效果图,和普通的饼图很明显的区别就是: 1有明显的白色边框线 2圆环中心自定义内容标题 3需要设置图例位置与内容 我通常的实现思路就是官网找例子再一步一步改…...

Android SELinux——上下文Context源码(十)
通过前面的文章我们知道,SELinux 中的上下文(contexts)包含很多类型,这里我们就来看看Androd 源码中 上下文 SELinux Contexts 的代码结构。 一、Contexts源码 源码位置:/system/sepolicy/private 1、file_contexts file_contexts 文件用于定义系统中各个文件和…...

责任链模式下,解决开闭原则问题实践
前言 在现代软件工程中,设计模式是解决常见问题的有效工具之一。它们吸收了前人的经验,不仅帮助开发者编写更清晰、更可维护的代码,还能促进团队之间的沟通和协作。责任链模式(Chain of Responsibility Pattern)作为一…...

对Android的Binder机制的了解
Android的Binder机制详解 Android的Binder机制是Android系统中用于进程间通信(IPC)的核心机制,它提供了一种高效、安全、稳定的进程间通信方式。以下将对Binder机制的基本概念、工作原理、应用场景、优势以及实现细节进行详细的阐述。 一、…...

收藏文章_VMware17Pro虚拟机安装教程(超详细)
收藏文章: VMware17Pro虚拟机安装教程(超详细) VMware虚拟机安装Linux教程(超详细)...

友思特分享 | 车载同步技术创新:多相机系统如何实现精准数据采集与实时处理?
导读 车载多相机采集系统是智能驾驶技术实际应用中的“眼睛”,友思特车载图像采集和回放系统切实提升了系统的实时同步采集与回放能力,为ADAS等应用的决策系统提供了可靠的核心数据。 视频流同步采集与智驾技术发展 在现代汽车行业中,智能驾…...

grafana failed to load dashboard from file= ... json error=EOF
问题描述 使用 prometheus-community/kube-prometheus-stack helm chart 部署 prometheus 监控后,查看 grafana pod 有如下报错 logger=provisioning.dashboard type=file name=default t=2024-10-17T06:30:47.937121541Z level=error msg...

【前端学习】AntV G6-09 复杂的自定义边、边动画
课程视频 AntV G6:复杂的自定义边、边动画(上)_哔哩哔哩_bilibili AntV G6:复杂的自定义边、边动画(下)_哔哩哔哩_bilibili 讲义截图 提及链接 https://codesandbox.io/p/sandbox/register-polyline-get…...

极狐GitLab 发布安全补丁版本 17.4.2, 17.3.5, 17.2.9
本分分享极狐GitLab 补丁版本 17.4.2, 17.3.5, 17.2.9 的详细内容。 极狐GitLab 正式推出面向 GitLab 老旧版本免费用户的专业升级服务,为 GitLab 老旧版本进行专业升级,详情可以查看官网 GitLab 专业升级服务指南 今天,极狐GitLab 专业技术…...

MATLAB智能算法 - Immunity Algorithm免疫算法
Immunity Algorithm免疫算法 智能算法是路线规划、深度学习等等一系列领域所使用的优化算法,是算法进阶之路的必备之路。 前言:本文主要围绕解决TSP旅行商问题展开,对于机器人的路线规划以及非线性方程求解的问题等解决方案 对于一些其他智能…...

学习eNSP对提升就业竞争力有多大帮助?
学习eNSP(Enterprise Network Simulation Platform)对提升就业竞争力有显著帮助,具体表现在以下几个方面: 1. **增强专业技能**:通过eNSP,你可以模拟华为的网络设备,进行网络设计、配置和故障排…...

Molmo和PixMo:为最先进的多模态模型提供开放权重和开放数据
摘要 https://arxiv.org/pdf/2409.17146 当今最先进的多模态模型仍然是专有的。性能最强的开源模型严重依赖专有视觉语言模型(Vision-Language Model,简称VLM)的合成数据来获得良好性能,有效地将这些封闭模型提炼为开放模型。因此,业界仍然缺少关于如何从零开始构建高性能…...

day02_计算机常识丶第一个程序丶注释丶关键字丶标识符
计算机常识 计算机如何存储数据 计算机世界中只有二进制。那么在计算机中存储和运算的所有数据都要转为二进制。包括数字、字符、图片、声音、视频等。 进制 进制也就是进位计数制,是人为定义的带进位的计数方法 实例: // 在java 中 可以使用不同…...