为什么append到父节点后的子节点发生修改,父节点打印出来的也会变化

今天走查前端代码,发现历史代码写出来的不规范,但是他还是在生产运行了很久的代码,仔细思量后发现,其实原理是对的,只是看起来不美观,不易读而已。

废话不说,先上demo代码


<!DOCTYPE html>
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/><title>appendTest</title><script>function init(){var BatteryCapacityDiv = document.createElement("div");//创建Element对象BatteryCapacityDiv.className = 'popTowCol2';//className属性赋值var parentNode =  document.getElementById("pano_holder");parentNode.appendChild(BatteryCapacityDiv);console.log( parentNode)BatteryCapacityDiv.appendChild(getSecondHtml());console.log( parentNode)}function getSecondHtml(){var batteryCapacity_div = document.createElement("div");batteryCapacity_div.className = 'popLine';batteryCapacity_div.innerText = "testSecondHtml";return batteryCapacity_div;}</script>
</head>
<body onload="init()">
<div id="pano_holder"></div>
</body>
</html>

怎么样?你觉得init方法里边打印的两个console一样吗?答案是一样的;

来,上图

看出来没,一模一样,怎么理解呢?

实际上需要对象的一些基础知识来解答


1) 实例化 Element 对象BatteryCapacityDiv时 开辟出一块内存空间, 并在内存地址对应的内存中写入数据

2)使 parentNode 指向 BatteryCapacityDiv 对象, parentNode也对应 BatteryCapacityDiv 的内存地址

3)通过BatteryCapacityDiv对象修改值内存中的值改变,但是BatteryCapacityDiv对象、parentNode中的key对应的内存地址并没有改变
因此 parentNode取值改变
 

参考链接:修改对象的值,集合中的值也被改变? 一句话看懂 内存空间 内存地址 与 引用对象_使用java对象池为什么会把之前存到集合中的数据改变呢?-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Spring Boot】创建一个 Spring Boot 项目

创建一个 Spring Boot 项目 1. 安装插件2. 创建 Spring Boot 项目3. 项目目录介绍和运行注意事项 1. 安装插件 IDEA 中安装 Spring Boot Helper / Spring Assistant / Spring Initializr and Assistant插件才能创建 Spring Boot 项⽬ &#xff08;有时候不用安装&#xff0c;直…

维修派单系统好用吗?如何实现数字化后勤管理?

在当今社会&#xff0c;各种设备和设施的正常运转对于单位和组织来说至关重要。然而&#xff0c;由于各种因素的影响&#xff0c;设备和设施在日常运行过程中难免会出现故障。这时&#xff0c;高效的维修服务就显得尤为重要。而“的修”维修派单系统&#xff0c;就是一种专为维…

2023八股每日一题(九月份)

文章目录 9月13日【JDK、JRE、JVM之间的区别】9月14日【什么是面向对象&#xff1f;】9月15日【和equals比较】9月16日【final 关键字的作用】9月17日【String、StringBuffer、StringBuilder】9月18日【重载和重写的区别】9月19日【接口和抽象类的区别】9月20日【List和Set的区…

力扣第572题 另一棵树的子树 c++深度(DFS)注释版

题目 572. 另一棵树的子树 简单 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有…

数据挖掘(3)特征化

从数据分析角度&#xff0c;DM分为两类&#xff0c;描述式数据挖掘&#xff0c;预测式数据挖掘。描述式数据挖掘是以简介概要的方式描述数据&#xff0c;并提供数据的一般性质。预测式数据挖掘分析数据建立模型并试图预测新数据集的行为。 DM的分类&#xff1a; 描述式DM&#…

为什么企业都在申报“高新技术”?有以下十大好处!

随着信息技术时代的迅速发展&#xff0c;很多企业为了能够在同行中脱颖而出&#xff0c;都会选择办理一些和企业相关的资质证书&#xff0c;以便提升企业的核心竞争力&#xff0c;今天同邦信息科技的小编就告诉大家为什么那么多企业都选择申报“高新技术”企业&#xff1f; 首先…

Cocos Creator3.8 项目实战(四)巧用九宫格图像拉伸

一、为什么要使用九宫格图像拉伸 相信做过前端的同学都知道&#xff0c;ui &#xff08;图片&#xff09;资源对包体大小和内存都有非常直接的影响。 通常ui 资源都是图片&#xff0c;也是最占资源量的资源类型&#xff0c;游戏中的ui 资源还是人机交互的最重要的部分&#xff…

若依分离版-前端使用

1 执行 npm install --registryhttps://registry.npm.taobao.org&#xff0c;报错信息如下 npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: ktg-mes-ui3.8.2 npm ERR! Found: vue2.6.12 npm ERR! node_modu…

张量-规约计算

作为Tensorflow中常见的一种计算方式,规约计算在操作时会有降维的功能。在所有规约计算系列的操作函数中,都是以reduce开头来命名,以函数名所命名的手段来降维。 每个函数都有axis参数,即沿哪个方向使用函数名所命名的方法对输入的tensor进行降维。axis的默认值是None,即把inp…

Ubuntu 2204 搭建 nextcloud 个人网盘

Nextcloud是一套用于创建网络硬盘/云盘以存放文件的客户端-服务器软件&#xff0c;Nextcloud 完全开源并且免费。 一、搭建 ubuntu apache2 mysql php &#xff08;lamp&#xff09;环境 因为 nextcloud 服务是使用 php 语言和 mysql 数据库的web服务&#xff0c;因此需要…

TS中Class类的继承

我们有下面一个代码&#xff0c;其中创建了一个Dog类和Cat类&#xff0c;这两个类中都有姓名和年龄属性和bark方法 class Dog {name: string;age: number;constructor(name: string, age: number) {this.name name;this.age age;}bark() {console.log(this.name "汪汪…

计算机竞赛 题目:基于深度学习卷积神经网络的花卉识别 - 深度学习 机器视觉

文章目录 0 前言1 项目背景2 花卉识别的基本原理3 算法实现3.1 预处理3.2 特征提取和选择3.3 分类器设计和决策3.4 卷积神经网络基本原理 4 算法实现4.1 花卉图像数据4.2 模块组成 5 项目执行结果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基…

ElasticSearch更新数据后查不到的问题

一、前言 上一篇文章还是2个星期前写的&#xff0c;近段时间有点懒&#xff0c;本来这篇也不太愿意动笔写&#xff0c;但这两天关注数据&#xff0c;发现新的一年已经收获了4个粉丝&#xff0c;首先感谢大家的关注&#xff0c;我以后还是会尽量多写一点。这篇文章讲一下今天我…

组件的挂载和渲染

React的挂载和渲染 React的生命周期中包括三个主要的阶段&#xff1a;挂载、渲染以及卸载。 很多小伙伴包括我自己可能对挂载和渲染的概念比较模糊&#xff0c;今天这篇文章主要的目的是为了解答我们的这个小疑惑~ 这张图是从其他地方搬运过来的&#xff0c;这张图中描述的主…

1358. 包含所有三种字符的子字符串数目

1358. 包含所有三种字符的子字符串数目 C代码&#xff1a;滑动窗口、前缀 // 只存在abc // 存在三种字符的子串数量、左边窗口满足&#xff0c;窗口后边的也就满足 int numberOfSubstrings(char * s){int hash[3] {0};int n strlen(s);int ans 0;int l 0;for (int i -1; …

Zookeeper经典应用场景实战(二)

文章目录 1、 Zookeeper 分布式锁实战1.1、 什么是分布式锁1.2、 基于数据库设计思路1.3、 基于Zookeeper设计思路一1.4、 基于Zookeeper设计思路二 1、 Zookeeper 分布式锁实战 1.1、 什么是分布式锁 在单体的应用开发场景中涉及并发同步的时候&#xff0c;大家往往采用Sync…

新基建智慧铁路:高铁沿线综合视频监控及风险智能预警管理方案

一 、方案背景 铁路沿线安全环境直接关系铁路运输安全畅通。随着我国铁路特别是高速铁路运营里程不断增加&#xff0c;改善铁路沿线安全环境对保障铁路高质量发展和人民群众生命财产安全的作用更加突出。为了保障高铁的安全运营&#xff0c;高铁对安防尤其是视频监控的需求不断…

数字化转型频频失败?一体化模式提供新的思考

数字化连续6年出现在政府报告中&#xff0c;从《中小企业数字化赋能专项行动方案》到《关于推进“上云用数赋智”行动》、《“十四五” 规划和 2035 年远景目标建议》、《中小企业数字化转型指南》&#xff0c;再到2023年2月《数字中国建设整体布局规划》&#xff0c;加快数字化…

好奇喵 | Tor浏览器——如何拥有一颗洋葱并使用

前言 在之前的博客中&#xff1a; 1.Surface Web —&#xff1e; Deep Web —&#xff1e; Dark Web&#xff0c;我们解释了表层网络、深层网络等的相关概念&#xff1b; 2.Tor浏览器——层层剥开洋葱&#xff0c;我们阐述了Tor的历史和基本工作原理&#xff1b; 本篇博客介…

重庆建筑模板厂家:选择桉木模板,智慧之选

随着城市化进程的不断加速&#xff0c;建筑业也呈现出蓬勃发展的势头。而作为建筑过程中不可或缺的材料之一&#xff0c;建筑模板的选择将直接影响到工程质量和工期。在重庆这样一个气候多变、地形复杂的地区&#xff0c;如何选择适合当地情况的建筑模板显得尤为重要。 一、常规…