Object.assign() 是创建深拷贝还是浅拷贝?

2023-11-25

我刚刚遇到这个概念

var copy = Object.assign({}, originalObject);

这将原始对象的副本创建到“copy但是,我的问题是,这种克隆对象的方式会创建深拷贝还是浅拷贝?

PS:令人困惑的是,如果它创建深层副本,那么这将是克隆对象的最简单方法。


忘记深复制,即使浅复制也不安全,如果您要复制的对象具有以下属性enumerable属性设置为 false。

MDN :

Object.assign() 方法仅复制可枚举的属性和自己的属性 从源对象到目标对象

拿这个例子

var o = {};

Object.defineProperty(o,'x',{enumerable: false,value : 15});

var ob={}; 
Object.assign(ob,o);

console.log(o.x); // 15
console.log(ob.x); // undefined
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Object.assign() 是创建深拷贝还是浅拷贝? 的相关文章

  • 从 php 到 JavaScript 的数组

    我正在尝试使用 json 将数组列表从 php 传输到 javascript 但它不起作用 JS ajax url getProfilePhotos php type post post or get method data if you
  • 如何将 Django 中的数组传递给模板并在 JavaScript 中使用它

    我想将数组传递给模板 然后通过 JavaScript 使用它 In my views py I have arry1 Str 500 20 return render to response test html array1 arry1 在
  • 我如何使用 querySelector() 选择具有双类的元素

    当我想使用 querySelector 选择元素时遇到问题 ul class xoxo blogroll ul 我怎样才能选择它ul元素 在我的代码中我像这样使用 var list document body querySelector u
  • 如何使用 JavaScript 选择预节点/块中的文本?

    我了解不允许 JS 将任意文本复制到剪贴板背后的安全原因 但是是否有一种方法可以通过单击按钮来选择预节点中的文本 类似于 select 函数在输入中的工作方式 我不是在寻找复制到剪贴板的 jQuery 插件 我只想突出显示预块中的文本 以便
  • setInterval() 在用户离开选项卡时暂停?

    javascript 中是否有任何方法的行为类似于 setInterval 并且当用户离开选项卡时停止并在用户再次进入选项卡时恢复 您可以使用以下方法创建自己的 API可见性API https developer mozilla org e
  • 将异步事件监听器与 Nestjs EventEmitter 模块和无服务器函数结合使用

    我正在尝试在 Nestjs EventEmitter 模块的帮助下实现具有无服务器 lambda 函数的异步工作线程 处理程序在发出事件时被调用 但该函数在 async await 调用之前关闭 我尝试过同时使用emit and emitA
  • 如何循环遍历对象数组并生成键值对?

    我有一个像这样的对象数组 let someObj items id 12 value true id 34 value true id 56 value false 我想将其添加到现有对象中 其中 id 是该对象的键 如下所示 let ob
  • 窗口大小调整触发的 DOM 事件

    我有一个布局相当复杂的页面 最初打开页面时 某些元素的对齐存在问题 但是 可以通过更改浏览器窗口的大小来 永久 解决此问题 显然 我不希望用户必须调整浏览器窗口的大小才能使页面正确显示 所以我想知道是否有一种方法可以在页面首次加载时以编程方
  • 将 window.location 传递给 Flask url_for

    我正在使用 python 在我的页面上 当匿名用户转到登录页面时 我想将一个变量传递到后端 以便它指示用户来自哪里 发送 URL 因此 当用户单击此锚链接时 a href Sign in a 我想发送用户当前所在页面的当前 URL
  • 有没有办法伪造同步 XHR 请求?

    我正在使用 Emscripten 系统将一堆 C 代码移植到 Javascript C 代码有很多调用fopen这是一个同步 IO 调用 在 Emscripten 中 我们使用对本地资源的 XHR 请求来模拟这一点however 在 Fir
  • jQuery 悬停时滚动到 div 并返回到第一个元素

    我基本上有一个具有设定尺寸的 div 和overflow hidden 该 div 包含 7 个子 div 但一次只显示一个 我希望当它们各自的链接悬停时能够平滑地垂直滚动 但是 第一部分 div 没有链接 并且是没有悬停链接时的默认部分
  • JavaScript 提升解释

    下面的片段有什么区别 var a 0 function b a 10 return function a b console log a gt 10 and var a 0 function b a 10 return function a
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len
  • 具有固定顶部菜单的语义 UI 侧边栏

    Semantic UI 对其进行预警侧边栏页面 http semantic ui com modules sidebar html usage 当侧边栏出现时 固定位置内容可能会出现改变其位置的问题 然后它提供了该问题的两种可能的解决方案
  • 如何:带有 onclick 的 div 位于另一个带有 onclick 的 div 中

    只是一个简单的问题 我遇到了 div 与 onclick javascript 之间的问题 当我点击内部 div 时 它应该只触发它的 onclick javascript 但外部 div 的 javascript 也会被触发 用户如何点击
  • AngularJS 在指令运行之前通过 AJAX 检索数据

    我正在使用 AngularUIuiMap http angular ui github com directives map实例化谷歌地图的指令 uiMap 指令非常适合处理硬编码数据 mapOptions and myMarkers 但是
  • ReactJs 警告:不推荐使用改变“style”。考虑事先克隆它

    我收到以下警告 inWarning div was passed a style object that has previously been mutated Mutating style is deprecated Consider c
  • p5 向量减法“sub”返回错误

    我一直在尝试将 p5 草图上传到 React 构建中 使用react p5 wrapper 我能够成功在屏幕上渲染画布 但是 某些矢量函数会导致错误 var distance this position dist ball position
  • 如何获得 JavaScript 阶乘程序的循环来显示所使用的工作?

    你好 我面临着用 JavaScript 编写一个程序的挑战 尽管我对它不太了解 但它要求用户输入一个数字 然后计算该数字的阶乘 我使用了已经提出的问题并设法使计算正常工作 但无法获得所需的输出 我必须在以下输出中获取它 而不使用任何花哨的库
  • JQuery 删除和内存泄漏

    我正在开发一个游戏 我看到了很多内存消耗 我使用jquery animate 动画完成后 我 remove 元素 我的问题是 从 dom 树中删除一个元素后 对象还存在记忆中吗 Javascript 是一种垃圾收集语言 这意味着当没有代码保

随机推荐

  • Windows系统中是否有无缓冲的I/O?

    我想找到低级 C C API 相当于 Linux 系统中的 写入 但没有缓冲区 有吗 fread fwrite 等缓冲 I O 不是我想要的 Look at 创建文件使用 FILE FLAG NO BUFFERING 选项
  • 如何在 Lisp In A Box 中更改 emacs 配置

    我成为一名程序员已有十年了 但我相信这是我第一次在论坛上提出问题 我只是无法弄清楚这一点 也无法在网上找到答案 我正在尝试打开 CUA 模式 以便 emacs 对于 Windows 用户来说更容易忍受 正常的复制粘贴功能 我运行的是 Win
  • PHP while 语句中的 Lambda 和冒号? [复制]

    这个问题在这里已经有答案了 下面的代码是什么意思 它是 while 语句中的 lambda 然后是冒号 来自 JavaScript 我不知道这意味着什么 甚至不知道如何搜索它 谁能帮忙解释一下吗 while query gt have po
  • 使用 python 自动从 Windows 文件对话框打开文件

    我进行自动化测试并获得一个文件对话框 我想使用 python 或 selenium 从 Windows 打开文件对话框中选择一个文件 注意 该对话框是由其他程序给出的 我不想用 Tkinter 创建它 窗口看起来像 这个怎么做 考虑使用py
  • Mac OS X 的 UIDevice 类?

    我正在尝试将我的 iOS 应用程序之一移植到 Mac OS X 但我正在努力寻找UIDevice 类似于 OS X 的对象 我有兴趣获取设备的名称 例如 MacBookAir 编辑 回答正如 Josh Caswell 指出的 你可以使用SC
  • XML 炸弹(实体注入)默认在 .Net 4.0 中得到处理,但在 .Net 3.5 中则不然。如何?发生了什么变化?

    以下代码 XmlDocument xdoc new XmlDocument String xml
  • 将 Rc 作为函数参数传递时出错

    我在经过时遇到一些奇怪的行为Rc
  • 默认今日小部件中的布局约束冲突

    我在刚刚为我的应用程序创建的 今日小部件 中观察到有关自动布局的非常奇怪的行为 试图找到问题的根源 我最终创建了一个简单的新的 Xcode 项目 单视图应用程序 并添加了今天扩展作为新目标 甚至没有碰它 当我在我的设备 iPhone 6s
  • Android Hybid 应用程序使用 Ionic 框架显示远程图像时出现问题?

    我是离子的新手 我正在使用 Ionic Framework 1 3 20 Angular JS Cordova 5 0 0 模板文件browser html代码 div class col 50 img div app js code st
  • 如何停止 Eclipse 关于目标文件夹内容的警告?

    我从我的生成文件中收到大量警告target我无法修复的文件夹 例如从 XSD 或 Surefire 报告生成的 Java 代码 并且它在我的源代码中隐藏了正确的警告 有谁知道如何告诉 Eclipse 不要在某些文件夹中显示警告 或者只是在
  • 如何为 IJulia Jupyter 笔记本设置 Julia 环境?

    我在全局 Julia 中遇到包兼容性问题环境对于我想在 Jupyter 笔记本中使用的特定包 有没有办法告诉 IJulia 使用不同的环境而不是我的全局环境 默认的 IJulia 内核sets project 因此 最方便的方法 IMO 是
  • 我们应该直接使用 ScalaSignature 吗?

    Scala 签名是一个注释 它包含元信息 https github com scala scala blob v2 9 2 src library scala reflect ScalaSignature java 然后提供解析器 但sca
  • 在读取记录时我应该使用 SQL 事务吗?

    SQL事务用于插入 更新 但是否应该用于读取记录呢 如果您在一次查询中查询所有记录 然后一次性将它们拉回 则没有必要 一切都包含在隐式事务中 也就是说 即使您取回一百万条记录 即使其他进程正在更改这些记录 您也会看到所有一百万条记录在同一时
  • 如何在 Qt 中一次将输入掩码和 QValidator 设置为 QLineEdit?

    我想要一个接受 IP 地址的行编辑 如果我将输入掩码指定为 ui gt lineEdit gt setInputMask 000 000 000 000 它接受大于 255 的值 如果我给出验证器 那么我们必须在每三位数字后给出一个点 最好
  • 通过F#和Npgsql调用Postgresql中的存储过程

    我正在尝试使用 Npgsql 类型提供程序从 F 调用 postgresql 中的存储过程 目前 我连接数据库的方式如下 open System open System Data open System Data Entity open S
  • Laravel 中的自定义代码应该放在哪里

    再会 我有一些来自以前的非 MVC 应用程序的自定义代码 这是经过所有单元测试的东西 现在 我需要将其放入 Laravel 应用程序中 它们不是控制器 模型或视图 这是否意味着我必须将它们与 Symfony 和 Swiftmailer 文件
  • 如何在 TypeScript 中指定任何可更新的类型?

    我尝试过这个 但它不起作用 Foo 只是对有效方法的测试 Bar 是真正的尝试 它应该接收任何可更新的类型 但 Object 的子类对于该目的无效 class A class B public Foo newable typeof A vo
  • 重置 SQL Server 中的标识列

    我正在制作一个存储联系人的 SQL 数据库 我希望能够删除联系人 每个联系人的正确 ID 对于我的软件连接到它至关重要 假设我已经联系了詹姆斯 他是第一个联系的 他的id是0 我添加Mary 她的id是1 如果我删除James 如何将Mar
  • WebRTC getStat() API 设置

    我正在尝试使用 WebRTC api 中的 getStat 来查看它是否提供任何有用的信息来测量延迟和其他视频流数据 问题是没有太多关于如何使用它的信息 即使是较旧的现有示例也相当罕见 但从那时起 api 已经发生了变化 例如我的设置 pe
  • Object.assign() 是创建深拷贝还是浅拷贝?

    我刚刚遇到这个概念 var copy Object assign originalObject 这将原始对象的副本创建到 copy但是 我的问题是 这种克隆对象的方式会创建深拷贝还是浅拷贝 PS 令人困惑的是 如果它创建深层副本 那么这将是