js的Object.assign用法示例分析

  1. 简介

Object.assign 是 ES6 新增的一个API,能够将一个或多个源对象的属性复制到目标对象上。它的参数依次为目标对象和一个或多个源对象。如果源对象中的属性已经存在在目标对象中,那么源对象中的属性值将覆盖目标对象中的属性值。

  1. 语法
Object.assign(target, ...sources)

参数:

  • target (必须):要将源对象复制到的目标对象。
  • sources (必须):一个或多个源对象,该对象将被复制到目标对象。如果要复制多个源对象,请将它们放在逗号后面。

返回值:目标对象。

例如,如果需要将 obj2 和 obj3 中的属性分别复制到 obj1 中,可以这么调用:

Object.assign(obj1, obj2, obj3);
  1. 示例1:深拷贝一个对象
const source = {
  name: '小明',
  age: 18,
  address: {
    city: '北京',
    street: '海淀区',
    code: '100000',
  },
};

const target = Object.assign({}, source);

console.log(target);

结果:

{
  "name": "小明",
  "age": 18,
  "address": {
    "city": "北京",
    "street": "海淀区",
    "code": "100000"
  }
}

解释:在这个示例中,源对象是一个嵌套的对象,它包含一个内部对象,通过 Object.assign() 方法将其赋值给一个新的空对象,实现了深拷贝。

  1. 示例2:对象属性的合并
const target = {
  name: '小明',
  age: 18,
};

const source1 = {
  age: 19,
  address: '北京',
};

const source2 = {
  email: 'xiaoming@gmail.com',
};

Object.assign(target, source1, source2);

console.log(target);

结果:

{
  "name": "小明",
  "age": 19,
  "address": "北京",
  "email": "xiaoming@gmail.com"
}

解释:在这个示例中,目标对象有两个属性:name 和 age。源对象 1 有两个属性:age 和 address。源对象 2 有一个属性:email。通过 Object.assign() 方法将所有的源对象合并到目标对象的属性中,属性值按照顺序依次覆盖。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js的Object.assign用法示例分析 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JS获取几种URL地址的方法小结

    关于 “JS获取几种URL地址的方法小结”,我准备了如下的攻略: 1. 前言 在前端开发中,获取URL地址的能力是非常常见也非常重要的技能。 获取URL地址的方法也是多种多样的。 在本篇攻略中,我们会讲解JavaScript中获取URL地址的几个常用方法。 2. JavaScript获取URL地址的几种方法的小结 2.1. 通过window.location…

    JavaScript 2023年6月11日
    00
  • 解决Django cors跨域问题

    让我来给您详细讲解解决Django CORS跨域问题的完整攻略。 什么是CORS跨域问题? CORS(Cross-Origin Resource Sharing)跨域资源共享问题,是由于同源策略(Same-Origin Policy)限制而导致的。同源策略指的是协议、域名、端口均相同,否则称之为跨域。在Web开发中,跨域问题是一种常见的问题,也是需要解决的问…

    JavaScript 2023年6月11日
    00
  • javascript中使用未定义变量或值的情况分析

    当你在JavaScript中使用未定义变量或值时,会遇到“undefined”或“ReferenceError”的错误。 未定义变量的情况: 当你使用一个未定义的变量时,JavaScript会返回“undefined”,而不是抛出异常错误。因此,你必须小心使用未定义的变量,以避免不必要的错误。 示例1:未定义变量的情况 var a; console.log(…

    JavaScript 2023年5月18日
    00
  • Javascript无参数和有参数类继承问题解决方法

    Javascript无参数和有参数类继承问题解决方法 在Javascript中,实现类的继承是非常方便的。但是在实践中,我们往往会遇到一些继承问题,其中常见的问题是我们从父类中继承了一些属性和方法,但是我们希望在子类中传入一些特定的参数来修改这些属性和方法。在这种情况下,我们需要解决Javascript无参数和有参数类继承问题。 解决无参数类继承问题的方法 …

    JavaScript 2023年5月27日
    00
  • moment.js 时间日期处理详解

    Moment.js 时间日期处理详解 简介 Moment.js 是一个 JavaScript 库,可以用于解析、验证、操作和格式化日期和时间。它拥有灵活的 API 和许多可定制的选项,可以让我们轻松地处理各种日期和时间格式。而且它还提供了一个易于使用的插件体系,可以为我们提供更多的功能。 安装和使用 Moment.js 可以通过 npm 安装: $ npm …

    JavaScript 2023年5月27日
    00
  • JavaScript实现的3D旋转魔方动画效果实例代码

    下面是详细的攻略: 介绍 这是一个使用 JavaScript 实现的 3D 旋转魔方动画效果的实例代码。该代码使用了 CSS3 的 transform 属性来实现魔方的旋转效果,同时也使用了 JS 来控制魔方的旋转方向、速度等参数。 运行代码 如果需要运行本代码,请将以下所有代码保存为一个 HTML 文件,并使用浏览器打开该文件。此外,请确保您的浏览器支持 …

    JavaScript 2023年6月10日
    00
  • JavaScript也谈内存优化

    JavaScript也谈内存优化 为什么要进行内存优化? JavaScript代码执行时会占用计算机的内存空间,当JavaScript代码执行完毕后,内存空间会被释放。但如果我们的代码存在内存泄漏等问题,那么内存空间就不会被释放,直到浏览器或者计算机崩溃。 而进行内存优化,则可以有效减少内存泄漏等问题的出现,让我们的代码更健壮、更高效地执行。 如何进行内存优…

    JavaScript 2023年5月28日
    00
  • JS实现匀加速与匀减速运动的方法示例

    JS实现匀加速与匀减速运动的方法示例攻略如下: 一、匀加速运动 1. 获取元素并初始化 首先需要获取需要进行匀加速运动的元素,并初始化一些变量。假如我们要让一个div元素匀加速向右移动,可以使用如下代码: let box = document.querySelector(‘.box’); // 获取元素 let speed = 10; // 初始速度 let…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部