博客
关于我
Object.assign用法
阅读量:800 次
发布时间:2023-02-17

本文共 1667 字,大约阅读时间需要 5 分钟。

Object.assign()方法:对象合并与赋值详解

什么是Object.assign()?

作为ECMAScript标准的一部分,Object.assign() 是一个强大的工具,用于将可枚举属性从一个或多个源对象复制到目标对象。它返回目标对象,允许我们轻松实现对象属性的合并和赋值。

Object.assign()的使用方法

Object.assign() 的调用方式如下:

Object.assign(target, ...sources)
  • target:目标对象,属性会被源对象的属性覆盖。
  • sources:多个源对象,属性会被逐一合并到目标对象中。
  • 返回值:目标对象,即被修改的对象。

Object.assign()的示例

示例1:合并不同对象

var target = {name: 'guxin', age: 25};var source = {state: 'single'};var result = Object.assign(target, source);console.log(target, target === result); // {name: 'guxin', age: 25, state: 'single'}, true

示例2:使用空对象作为目标

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

示例3:处理重名属性

var target = {name: 'guxin', age: 18};var source = {state: 'single', age: 22};var result = Object.assign(target, source);console.log(target); // {name: 'guxin', age: 22}

示例4:多个源对象

var target = {name: 'guxin', age: 18};var source1 = {state: 'single', age: 22};var source2 = {mood: 'happy', age: 25};var result = Object.assign(target, source1, source2);console.log(target); // {name: 'guxin', age: 25, state: 'single', mood: 'happy'}

注意事项

  • 可枚举属性:Object.assign() 只会复制源对象的可枚举属性,不能拷贝继承属性或不可枚举属性。
  • 深拷贝需求:如果源对象的属性是对象引用,需要自行实现深拷贝。
  • 目标对象改变:使用Object.assign() 会修改目标对象的属性,需谨慎使用。
  • 异常处理:一旦检测到错误,后续拷贝任务会停止。
  • Object.assign()与$.extend()的区别

    通过示例对比:

    var target = {name: 'guxin', age: 18};var source1 = {state: 'single', age: 22};var source2 = {mood: 'happy', age: 25};var resultAssign = Object.assign(target, source1, source2);console.log(resultAssign); // {name: 'guxin', age: 25, state: 'single', mood: 'happy'}var resultExtend = $.extend(target, source1, source2);console.log(resultExtend); // {name: 'guxin', age: 25, state: 'single', mood: 'happy'}

    两者功能相似,但在实现上有细微差异,主要体现在异常处理和性能上。

    转载地址:http://tynfk.baihongyu.com/

    你可能感兴趣的文章
    Nginx 的配置文件中的 keepalive 介绍
    查看>>
    nginx 配置 单页面应用的解决方案
    查看>>
    nginx 配置~~~本身就是一个静态资源的服务器
    查看>>
    Nginx下配置codeigniter框架方法
    查看>>
    nginx添加模块与https支持
    查看>>
    Nginx的Rewrite正则表达式,匹配非某单词
    查看>>
    Nginx的使用总结(一)
    查看>>
    Nginx的是什么?干什么用的?
    查看>>
    Nginx访问控制_登陆权限的控制(http_auth_basic_module)
    查看>>
    nginx负载均衡的五种算法
    查看>>
    Nginx配置ssl实现https
    查看>>
    Nginx配置TCP代理指南
    查看>>
    Nginx配置代理解决本地html进行ajax请求接口跨域问题
    查看>>
    Nginx配置参数中文说明
    查看>>
    Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
    查看>>
    Nginx配置实例-负载均衡实例:平均访问多台服务器
    查看>>
    NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
    查看>>
    Nio ByteBuffer组件读写指针切换原理与常用方法
    查看>>
    NIO Selector实现原理
    查看>>
    nio 中channel和buffer的基本使用
    查看>>