js中import引入一个export值可以被修改。vue,react
import引入的数据实际就是数据本身。
如果导出的是一个对象,该对象引入后被更改了,则会影响其他文件引入此对象
解释示例:
// resources.js
const obj = {}
export {obj}
当在a.js中import引入一个空对象obj,并且新增一个属性obj.a='a'
// a.js
import { obj } from "./resources.js";
obj.a = 'a'
console.log(obj); // {a:'a'}
那在b.js中import使用obj时,obj不再是空对象,而是obj为{a:'a'}
// b.js
import { obj } from "./resources.js";
console.log(obj); // {a:'a'}
一般情况下都不希望原始数据被更改,那应该怎么办?
解决办法1:冻结对象
// resources.js
const obj = { key: 'value' };
// 冻结对象
Object.freeze(obj);
export { obj };
Object.freeze() 冻结的特性
- 不可写:冻结对象的属性不能被修改。
- 不可扩展:不能向冻结对象添加新属性。
- 不可配置:不能删除冻结对象的属性。
- 原型不可变:冻结对象的原型不能被修改。
Object.freeze只能冻结第一层属性,如果需要冻结更深层属性则需要递归
// 递归冻结
function deepFreeze(obj) {// 获取对象的所有属性名const propNames = Object.getOwnPropertyNames(obj);// 遍历所有属性,如果属性值是对象,则递归冻结for (const name of propNames) {const value = obj[name];if (value && typeof value === 'object') {deepFreeze(value);}}// 冻结对象return Object.freeze(obj);
}
判断对象是否被冻结Object.isFrozen()
const obj = { key: 'value' };
// 判断对象是否被冻结
console.log(Object.isFrozen(obj)); // 输出: false// 冻结对象
Object.freeze(obj);
// 再次判断对象是否被冻结
console.log(Object.isFrozen(obj)); // 输出: true
解决办法2:也可以使用和vue原理相同的代理去实现。
如果确实需要更改数据,需要进行深拷贝后再进行操作
// c.js
import { arr } from "./resources.js";
import { cloneDeep } from "lodash-es";
const arrNew = cloneDeep(arr)
相关文章:
js中import引入一个export值可以被修改。vue,react
import引入的数据实际就是数据本身。 如果导出的是一个对象,该对象引入后被更改了,则会影响其他文件引入此对象 解释示例: // resources.js const obj {} export {obj} 当在a.js中import引入一个空对象obj,并且新增一个属性ob…...
PDF24:多功能 PDF 工具使用指南
PDF24:多功能 PDF 工具使用指南 在日常工作和学习中,PDF 是一种常见且重要的文档格式。无论是查看、编辑、合并,还是转换 PDF 文件,能够快速高效地处理 PDF 文档对于提高工作效率至关重要。PDF24 是一款免费、功能全面的 PDF 工具…...
域名解析线路类型有哪几种
在网络世界中,域名解析是将域名转换为IP地址的关键环节,而域名解析线路类型的不同则为域名解析提供了多样化的策略,以满足不同用户和网络环境的需求。以下是几种常见的域名解析线路类型。 电信线路 电信线路解析主要是针对中国电信网络用户…...
Spring资源加载模块,原来XML就这,活该被注解踩在脚下 手写Spring第六篇了
这一篇让我想起来学习 Spring 的时,被 XML 支配的恐惧。明明是写Java,为啥要搞个XML呢?大佬们永远不知道,我认为最难的是 XML 头,但凡 Spring 用 JSON来做配置文件,Java 界都有可能再诞生一个扛把子。 <…...
[运维][Nginx]Nginx学习(2/5)-Nginx高级
Nginx服务器基础配置实例 前面我们已经对Nginx服务器默认配置文件的结构和涉及的基本指令做了详细的阐述。通过这些指令的合理配置,我们就可以让一台Nginx服务器正常工作,并且提供基本的web服务器功能。 接下来我们将通过一个比较完整和最简单的基础配…...
【快捷入门笔记】mysql基本操作大全-SQL数据库
SQL数据库 一、创建数据库 – 创建一个新数据库 fang_fang CREATE DATABASE fang_fang;– 显示所有数据库以确认创建 SHOW DATABASES;– 使用新数据库fang_fang USE fang_fang;– 检查我们正在使用哪个数据库 SELECT DATABASE();二、 删除数据库 –当你确定数据库存在并…...
【LeetCode】【算法】15. 三数之和
LeetCode 15. 三数之和 题目描述 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不…...
传输协议设计与牧村摆动(Makimoto‘s Wave)
有一条活鱼和一条死鱼,你准备怎么做,你会将活鱼红烧或将死鱼清蒸吗?好的食材只需要最简单的烹饪,不好的食材才需要花活儿。 我此前的文字几乎都在阐述一个观点,广域网就是那条死鱼,数据中心则是那条活鱼。…...
JMeter进阶篇
目录 上篇导航: 总目录: 一、逻辑控制器: 1.逻辑控制器和关联: 2.if逻辑控制器: 3.forEach控制器: 4.循环控制器: 二、关联: 1.xpath: 2.正则表达式提取器&…...
LabVIEW编程基础教学(一)--介绍
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种基于图形化编程的开发环境,专为工程应用、测试、测量、控制系统等设计。与传统的文本编程语言不同,LabVIEW 使用图形化的方式通过“数据流”模型来表示程序逻…...
HVV蓝队基础
免责声明 学习视频来自B 站up主泷羽sec,如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。 企业网络架构 企业技术和信…...
[运维][Nginx]Nginx学习(1/5)--Nginx基础
Nginx简介 背景介绍 Nginx一个具有高性能的【HTTP】和【反向代理】的【WEB服务器】,同时也是一个【POP3/SMTP/IMAP代理服务器】,是由伊戈尔赛索耶夫(俄罗斯人)使用C语言编写的,Nginx的第一个版本是2004年10月4号发布的0.1.0版本。另外值得一…...
创客节小学组C++模拟题
来源:加码未来2024年深圳罗湖区创客节模拟题(小学组) 第一题 题目描述 给你n个数,找出出现次数超过一半的数。题目保证这样的数一定存在。 输入格式 第一行一个整数n,(n<=1000) 第二行n个整数(<1000000) 输出格式 输出一个整数 样例输入 5 1 2 3 3 3 样例输…...
阿里云ECS服务器使用限制及不允许做的事情
阿里云ECS(Elastic Compute Service)是一种高性能的弹性计算服务,允许用户在云端创建和管理虚拟服务器。尽管ECS提供了强大的功能,但在使用过程中,阿里云有一些限制和不允许的行为。以下是一些主要的使用限制和禁止行为…...
Linux开发讲课49--- Linux 启动过程分析
理解运转良好的系统对于处理不可避免的故障是最好的准备。 启动过程非常简单。内核在单核上以单线程和同步状态启动,似乎可以理解。但内核本身是如何启动的呢?initrd(initial ramdisk) 和引导程序(bootloader)具有哪些功能&#…...
Java-03
目录 算法 1.小美的因子查询 2.小美的密码 3.小美的数组删除 4.小美和大富翁 知识点 InnoDB中的行级锁是怎么实现的? 介绍一下Java中的IO流 讲讲Java的跨平台原理 COUNT(1)与COUNT(*)区别 Redis 为什么要用…...
微积分复习笔记 Calculus Volume 1 - 5.3 The Fundamental Theorem of Calculus
5.3 The Fundamental Theorem of Calculus - Calculus Volume 1 | OpenStax...
c++如何绑定一个类与类内成员的关系
在 C 中,成员函数和成员变量的归属关系(即某个成员属于哪个类)是通过编译器的多种机制和语言特性来实现和管理的。理解这些机制有助于更深入地掌握 C 的面向对象特性、内存管理以及编译过程。以下是 C 如何确定某个成员函数或成员变量属于特定…...
关于解决使用VMWare内的虚拟机无法识别USB问题小结
目录 前言 0. 查看是不是没有开启USB3.0的支持 1. 检查一下是否禁用了VMWare USB服务 2. 无奈之举 前言 笔者今天帮助一位同志解决了VMWare内的虚拟机不识别挂载设备的办法。这里对笔者使用的排查手段做一个总结。 0. 查看是不是没有开启USB3.0的支持 我们的第一件事情就…...
抢抓5G机遇,AORO A23防爆手机如何直击园区巡检挑战?
矗立在沙漠高原的铁塔,遍布都市的电线网络,远离郊区的海港油田……大型园区对智能巡检提出了新的需求,选择一款智能且高效的巡检设备,以确保园区高效运营,成为了管理者关注的重点。在调研多个智慧园区后,小…...
为什么92%的DeepSeek生产环境存在越权风险?——企业级访问策略配置检查表,限免领取24小时
更多请点击: https://intelliparadigm.com 第一章:DeepSeek访问控制配置的现状与风险全景 当前,DeepSeek系列模型在企业私有化部署场景中广泛采用基于API密钥与角色权限分离的访问控制机制。然而,大量实际配置案例表明࿰…...
提示词工程师正在消失?不,是升级为“AI交互架构师”——掌握这4类元提示设计能力的人已溢价2.8倍
更多请点击: https://intelliparadigm.com 第一章:提示词工程的范式迁移与角色升维 传统提示词设计常被视作“指令微调”或“模板填充”的辅助技巧,而大模型能力边界持续拓展正推动其向系统性工程范式跃迁。提示词不再仅是输入层的语法糖&am…...
在自动化工作流中集成 Taotoken 实现按需调用与成本优化
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在自动化工作流中集成 Taotoken 实现按需调用与成本优化 自动化工作流,例如 CI/CD 流水线、监控脚本或定期报告生成任务…...
除了brew services start,Mac上RabbitMQ还有这几种启动和管理方式你知道吗?
Mac上RabbitMQ的进阶管理:超越brew services的5种实战方案当你第一次在Mac上通过brew install rabbitmq完成安装时,Homebrew会友好地提示两种基础启动方式。但真正投入生产环境后,你会发现这仅仅是冰山一角。作为消息中间件的核心组件&#x…...
DeepSeek日志异常检测实战:基于时序大模型的动态基线算法(已通过金融级等保三级日志审计验证)
更多请点击: https://intelliparadigm.com 第一章:DeepSeek日志分析方案概述 DeepSeek系列大模型在推理与训练过程中会产生海量结构化与半结构化日志,涵盖请求元数据、token级耗时、KV缓存命中率、显存占用、错误堆栈等关键维度。本方案聚焦…...
张量网络机器学习:从平均风险下界看量子模型泛化极限
1. 项目概述:当张量网络遇见机器学习如果你和我一样,既对量子多体物理中的张量网络着迷,又对机器学习模型的泛化能力充满好奇,那么“张量网络机器学习模型平均风险的理论分析”这个课题,无疑是一个能将两者完美结合的宝…...
【机密级】火山引擎内部培训材料流出:DeepSeek模型热更新+AB灰度发布架构图(含K8s Operator CRD定义与Prometheus告警阈值清单)
更多请点击: https://kaifayun.com 第一章:DeepSeek火山引擎部署概览 DeepSeek系列大模型(如DeepSeek-V2、DeepSeek-Coder)在火山引擎(VolcEngine)上的部署,依托其高性能GPU资源池、弹性伸缩能…...
突破下载瓶颈:百度网盘Mac版SVIP加速完全指南
突破下载瓶颈:百度网盘Mac版SVIP加速完全指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 你是否曾因百度网盘Mac版的龟速下载而焦躁&am…...
FanControl终极指南:5分钟实现Windows风扇智能控制,告别散热噪音烦恼
FanControl终极指南:5分钟实现Windows风扇智能控制,告别散热噪音烦恼 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitco…...
别再只看BLEU分数了:Gemini代码生成能力专业评测框架(覆盖语义正确性、上下文感知度、调试友好性3大稀缺指标)
更多请点击: https://codechina.net 第一章:别再只看BLEU分数了:Gemini代码生成能力专业评测框架(覆盖语义正确性、上下文感知度、调试友好性3大稀缺指标) 传统NLP评估中,BLEU等基于n-gram重叠的指标在代码…...
