Object函数提供了一个叫做assign的函数,用来合并多个对象。

Object.assign(...);

你可以传递多个对象给该函数,这些对象中的自有且可枚举的属性,会被拷贝给第一个对象。

var a={name:'jack'};
var b={age:10};
Object.assign(a,b);
console.log(a) // 'Object {name: "jack", age: 10}'

该方法会修改传入的第一个对象,所以要小心这种改变,由于,函数会在最后return这第一个对象,

你可以传一个{},作为函数的第一个实参,这样剩下对象的自有且可枚举的属性,会被拷贝到这个空对象中并返回这个对象,这样可以避免不需要的修改。

var a={name:'jack'};
var b={age:10};
var c=Object.assign({},a,b);
console.log(c) // 'Object {name: "jack", age: 10}'

对于重复出现的属性,会被相对于右边的值覆盖,因为该函数是从左到右操作参数的。

所以,实参的顺序会影响到最终的结果。

var a={name:'jack'};
var b={name:10};
Object.assign(a,b);
console.log(a); // 'Object {name: 10}'

当第一个对象中,存在一个只读属性,而接下来的对象里,也存在一个同名的属性时,就会产生一个TypeError

Cannot assign to read only property '属性名' of object '#<Object>'

var a={name:'jack'};
Object.defineProperty(a,'name',{writable:false});//设置为只读
var b={name:10};
Object.assign(a,b);//报错

虽然产生了错误,但并不意味着所有的拷贝都失败,已经拷贝成功的属性不会受到影响,还未拷贝的属性不会再被拷贝。

    //解决方法
Object.assign({},a,b);

JavaScript Object中的函数assign的更多相关文章

  1. Javascript中的函数(Function)与对象(Object)的关系

    今天我们来尝试理解Function和Object.因为这个里面有些人前期可能会搞糊涂.他们之间到底是什么关系.当然也不除外当初的我. 注意:官方定义: 在Javascript中,每一个函数实际上都是一 ...

  2. JavaScript中Function函数与Object对象的关系

    函数对象和其他内部对象的关系 除了函数对象,还有很多内部对象,比如:Object.Array.Date.RegExp.Math.Error.这些名称实际上表示一个 类型,可以通过new操作符返回一个对 ...

  3. JavaScript正则表达式详解(二)JavaScript中正则表达式函数详解

    二.JavaScript中正则表达式函数详解(exec, test, match, replace, search, split) 1.使用正则表达式的方法去匹配查找字符串 1.1. exec方法详解 ...

  4. JavaScript中的函数表达式

    在JavaScript中,函数是个非常重要的对象,函数通常有三种表现形式:函数声明,函数表达式和函数构造器创建的函数. 本文中主要看看函数表达式及其相关的知识点. 函数表达式 首先,看看函数表达式的表 ...

  5. JavaScript中Eval()函数的作用

    这一周感觉没什么写的,不过在研究dwz源码的时候有一个eval()的方法不是很了解,分享出来一起学习 -->首先来个最简单的理解 eval可以将字符串生成语句执行,和SQL的exec()类似. ...

  6. Javascript中的函数

    Javascript中的函数 1.什么是函数 函数是被命名的,独立的,完成特定功能的代码段.其可能给调用它的程序返回值,我们把这个代码段就称之为"函数". 被命名的:函数大部分都是 ...

  7. html css <input> javaScript .数据类型 JS中的函数编写方式 BOM总结 DOM总结

    Day27  html css div 块标签. 特点: 独占一行,有高度和宽度 span 行元素. 特点:在同一行显示,当前行满了自动去下一行显示. 不识别高度和宽度 1.1.1.1 2.输入域标签 ...

  8. javascript中所有函数参数都是按值传递

    在看<JavaScript高级程序设计>(第三版)的时候,传递参数这一节,里面提到 ECMAScript中所有函数的参数都是按值传递的 它自己的解释是, 把函数外部的值复制给函数内部的参数 ...

  9. Javascript中的函数(三)

    一:概述 函数是进行模块化程序设计的基础,编写复杂的Ajax应用程序,必须对函数有更深入的了解.JavaScript中的函数不同于其他的语言,每个函数都是作为一个对象被维护和运行的.通过函数对象的性质 ...

随机推荐

  1. 在vue2中隐藏elementUI的tab栏

    <template> <el-tabs v-model="activeName" @tab-click="handleClick" ref=& ...

  2. 通过linux版本的lr agent提示找不到web_reg_save_param_ex函数

    Action.c(5): Error: C interpreter run time error: /tmp/brr_TSBgR2/netdir/E/lrscript/aaa/Action.c (5) ...

  3. python输入

    (程序是如何输入输出的) 先了解一个概念,什么是函数? 简单来说,函数就是封装了一些功能,到时候只需要写一个函数名字,就可以使用这些功能 input函数,它是输入函数,它可以将用户输入的内容当做“字符 ...

  4. asp.net core Csc任务不支持SharedCompilationId参数,请确认改参数存在于此任务中,并且是可设置的公共实例属性

    创建Asp.net Core2.0版本项目时,成功创建后编译时出现如下问题 解决方法 Nuget上安装Microsoft.Net.Compilers

  5. STL复习之 map & vector --- disney HDU 2142

    题目链接: https://vjudge.net/problem/40913/origin 大致题意: 这是一道纯模拟题,不多说了. 思路: map模拟,vector辅助 其中用了map的函数: er ...

  6. 潭州课堂25班:Ph201805201 tornado 项目 第六课 用户和图片分享的集成(课堂笔记)

    tornado 相关说明 改善图片上传功能 ,生成唯一的 ID ,与路径拼接,生成 URL, 这里引用 uuid 的 python 库 在 photo.py 中创建个类,用来  辅助用户上传的图片,生 ...

  7. 将ActiveX打包成CAB发布的注意事项

    1.在实现ActiveX组件时,注意VS必须使用管理员身份运行,否则会提示不成功 2.在解决方案中添加一个安装项目 a.在View中点击文件系统,添加对ActiveX项目的输出 b.注册表HKEY_C ...

  8. iframe ios中h5页面 样式变大

    实际项目开发中,iframe在移动设备中使用问题还是很大的,说一说我的那些iframe坑 做过的这个后台管理框架,最开始的需求是PC,但随着业务需要,需要将项目兼容到ipad,后台的框架也是使用的开源 ...

  9. HTML入门3

    HTML主要工作在于编辑文本结构和文本内容,也称语义(semantics)以便能够再浏览器正确地显示,下面开始介绍在文本中添加标题,段落,强调语句,创建列表等等 基础:标题和段落 内容结构化会使得阅读 ...

  10. [LeetCode] Rotated Digits 旋转数字

    X is a good number if after rotating each digit individually by 180 degrees, we get a valid number t ...