原生js实现复制对象、扩展对象 类似jquery中的extend()方法

实现复制对象可以使用Object.assign()方法或者扩展运算符(...);实现扩展对象可以自己实现一个extend()方法。

复制对象

使用Object.assign()方法

Object.assign()方法可以将源对象的属性,复制到目标对象中。

语法

Object.assign(target, ...sources)

参数

  • target:目标对象,在这个对象上复制源对象的属性。如果不提供目标对象,则以空对象{}为默认值。
  • sources:一个或多个源对象。这些对象的属性将被复制到目标对象中。

示例

// 复制对象
const obj1 = {a: 1, b: 2};
const obj2 = Object.assign({}, obj1);
console.log(obj2); //{a: 1, b: 2}

// 修改目标对象
const obj1 = {a: 1, b: 2};
const obj2 = {b: 3, c: 4};
const obj3 = Object.assign({}, obj1, obj2);
console.log(obj3); //{a: 1, b: 3, c: 4}

使用扩展运算符(...)

扩展运算符(...)可以用来展开数组或对象。在对象中使用时,相当于将一个对象的属性“拍扁”到目标对象中。

示例

// 复制对象
const obj1 = {a: 1, b: 2};
const obj2 = {...obj1};
console.log(obj2); //{a: 1, b: 2}

// 修改目标对象
const obj1 = {a: 1, b: 2};
const obj2 = {b: 3, c: 4};
const obj3 = {...obj1, ...obj2};
console.log(obj3); //{a: 1, b: 3, c: 4}

扩展对象

实现一个extend()方法

自己实现一个extend()方法可以用来扩展一个对象。这个方法接收任意数量的对象作为参数,将它们的属性合并到第一个参数对象中,并返回合并后的对象。

示例

function extend(target, ...sources) {
  sources.forEach(source => {
    Object.keys(source).forEach(key => {
      target[key] = source[key];
    });
  });
  return target;
}

// 扩展对象
const obj1 = {a: 1, b: 2};
const obj2 = {b: 3, c: 4};
const obj3 = extend({}, obj1, obj2);
console.log(obj3); //{a: 1, b: 3, c: 4}

以上就是原生js实现复制对象、扩展对象的完整攻略,使用Object.assign()方法、扩展运算符(...)或者自己实现一个extend()方法都可以实现这个功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:原生js实现复制对象、扩展对象 类似jquery中的extend()方法 - Python技术站

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

相关文章

  • 通过一篇文章由浅入深的理解JSONP并拓展

    JSONP(JSON with Padding)是一种常见的跨域数据请求方式,其原理是利用script标签可以跨站加载资源的特点,实现从其他域名下获取数据。下面就是一篇由浅入深的理解JSONP的攻略。 为什么需要JSONP? 在前后端分离的架构下,前端应用需要从后端获取数据,一般情况下都是通过AJAX请求进行获取。但是由于同源策略的限制,AJAX只能请求同源…

    JavaScript 2023年5月27日
    00
  • 小程序云开发之用户注册登录

    小程序云开发是微信小程序提供的一项能力,它可以让开发者在小程序内使用云数据库、云函数等云开发能力,而无需进行繁琐的服务器搭建和API开发。在小程序中实现用户注册和登录功能,可以使用小程序云开发提供的云函数和云数据库完成。 注册用户 在小程序中,注册用户的主要步骤如下: 创建云开发环境 在使用小程序云开发前,需要先创建一个云开发环境。选择小程序开发工具中的“云…

    JavaScript 2023年6月10日
    00
  • .NET实现在网页中预览Office文件的3个方法

    使用Office Web Viewer 可以使用Office Online中提供的Office Web Viewer来在线预览Office文档,具体实现步骤如下: (1)在HTML页面中使用iframe标签引用Office Web Viewer,如下所示: <iframe src="https://view.officeapps.live.c…

    JavaScript 2023年6月10日
    00
  • jQuery Attributes(属性)的使用(二、类篇)

    接下来我会详细讲解一下jQuery中Attributes(属性)的使用,特别是二、类篇。 1.使用addClass()方法添加类 jQuery提供了addClass()方法,可以在元素上添加指定的类名。其语法如下: $(selector).addClass(classname); 其中,selector表示需要添加类名的元素选择器,而classname则表示…

    JavaScript 2023年6月10日
    00
  • 用move.js库实现百叶窗特效

    使用move.js库实现百叶窗特效可以通过以下步骤进行操作: 1. 引入move.js库 在 HTML 文件头部添加以下代码来引入 move.js 库: <script src="https://cdn.bootcdn.net/ajax/libs/move.js/0.5.3/move.min.js"></script&g…

    JavaScript 2023年6月10日
    00
  • JS运动特效之同时运动实现方法分析

    JS运动特效之同时运动实现方法分析 在JavaScript中,同时运动指的是在同一时间内对一个元素的多个属性进行变换,以实现连续的动画效果。同时运动可以使页面动效更加美观,提升用户体验。本文将详细介绍同时运动的实现方法。 基本思路 同时运动的基本思路是通过定时器对元素的不同属性进行不断的增减,达到动画效果。 实现方法 同时运动的实现方法一般有两种: 1. 多…

    JavaScript 2023年6月11日
    00
  • javascript实现发送短信倒计时

    为在网页上实现发送短信倒计时,需要使用JavaScript编写代码。具体实现过程如下。 HTML文件中,需要加入一个用于显示验证码的按钮。按钮的初始状态为“发送验证码”,点击后会触发发送验证码的函数。 <button id="send">发送验证码</button> 在JavaScript文件中,需要定义一个计时器…

    JavaScript 2023年6月11日
    00
  • 详解JavaScript中typeof与instanceof用法

    详解JavaScript中typeof与instanceof用法 typeof typeof 是用于判断一个变量的基本数据类型的关键字,无法判断对象的具体类型。 如果变量是字符串,返回 “string”。 如果变量是数字,返回 “number”。 如果变量是布尔型,返回 “boolean”。 如果变量是对象,返回 “object”。 如果变量是函数,返回 “…

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