1、对象的扩展
ES6中,对象的属性和方法可简写:对象的属性值可不写,前提是属性名已经声明;

var name = "zhangsan";var password = "1111111";var obj = {name,password,arr:[1,2,3,4],sayName(){console.log(this.name);}};console.log(obj);var obj1 = {age:20,};

2、Object.assign()方法
特点:浅拷贝、对象属性的合并

var nObj = Object.assign({},obj,obj1);
//花括号叫目标对象,后面的obj、obj1是源对象。
对象合并是指:将源对象里面的属性添加到目标对象中去,
若两者的属性名有冲突,后面的将会覆盖前面的// console.log(nObj);// obj.sayName();//zhangsan// nObj.sayName();//zhangsannObj.name = "lisi";nObj.sayName = function(){console.log(this.name);};console.log(nObj);obj.sayName();//zhangsannObj.sayName();//lisinObj.arr[0] = 10;console.log(obj);//[10,2,3,4]console.log(nObj); //[10,2,3,4]//说明是浅拷贝,若要深拷贝,请考虑以前的方法(只是将源对象的引用给目标对象)//【注意】:当Object.assign()方法用于数组时:var arr11 = Object.assign([1,2,3],[4,5]);console.log(arr11);//[4,5,3]//[说明]:对象是根据属性名来对应,数组是根据索引号来对应,相当于var arr23 = {0:1,1:2,2:3};//相同的属性名有0、1,后面的覆盖前面的。

3、Object.assign()方法的用法
(1)合并多个对象

const obj1 = { name: '张三',age: 20}
const obj2 = { address: '广东深圳', hobby: 'code' }
const obj3 = { workingYears: 5}const obj = Object.assign(obj1, obj2, obj3)console.log(obj) //{ name: '张三', age: 20, address: '广东深圳', hobby: 'code', workingYears: 5}

(2)克隆对象(浅)

const obj = { name: '张三' ,age: 20}const obj1 = Object.assign({},obj)console.log(obj1) //{ name: '张三' ,age: 20}

(3)为对象添加多个方法

Object.assign(SomeClass.prototype, {someMethod(arg1, arg2) {},anotherMethod() {}
});​
// 原来的方法
SomeClass.prototype.someMethod = function (arg1, arg2) {​
};
SomeClass.prototype.anotherMethod = function () {
};

Object.assign()方法相关推荐

  1. JavaScript 复制对象与Object.assign方法无法实现深复制

    在JavaScript这门语言中,数据类型分为两大类:基本数据类型和复杂数据类型.基本数据类型包括Number.Boolean.String.Null.String.Symbol(ES6 新增),而复 ...

  2. es6 Object.assign()方法

    Object.assign()方法 基本用法 Object.assign()方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target). const target = ...

  3. JavaScript中的Object.assign()方法

    目录 介绍 什么是Object.assign()? JavaScript可枚举属性 语法和参数 您可以使用Object.assign()方法做什么? 合并对象 克隆对象 关于Object.assign ...

  4. Object.assign方法的使用和splice方法用法

    一.基本语法 Object.assign(target, ...sources) 二.基本概念 Object.assign方法用来将源对象(source)的所有可枚举属性,复制到目标对象(target ...

  5. Object.assign() 方法的使用详解

    Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象. 注意: 会改变源对象 语法: Object.assign(target, ...sou ...

  6. Object.assign()方法的用法

    1.合并多个对象 2.克隆对象(浅): 3.为对象添加多个方法 定义方法: insertRprm(data) {let params = Object.assign({}, {pagename: 'n ...

  7. assign深拷贝_经典前端面试题: Object.assign 是浅拷贝还是深拷贝?实现深拷贝的方法有哪些?...

    Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象. 如果目标对象中的属性具有相同的键,则属性将被源对象中的属性覆盖.后面的源对象的属性将类 ...

  8. JavaScript深入理解对象方法——Object.assign()

    Object.assign() Object.assign()方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象. 语法 Object.assign(target, ... ...

  9. js对象新增方法object.assign()

    Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target). const target = { a: 1 };const source1 = ...

最新文章

  1. 计算机组装与维修案例分析,计算机组装毕业论文
  2. 【移动开发】EditText输入字数限制总结(包括中文输入内存溢出的解决方法)...
  3. webpack:js、css、es6装载与压缩配置-学习笔记
  4. 使用OpenSSL加密,使用Java解密,使​​用OpenSSL RSA公钥
  5. 特别慢_这款“爱豆”很特别,它带你重温旧时光,体验慢生活的时代
  6. MySQL 练习 创建表格2
  7. python中zip的使用_浅谈Python中的zip()与*zip()函数详解
  8. sql server 查询工具_分享一款开源的SQL查询优化工具--EverSQL
  9. mysql 事务_详解mysql如何做事务
  10. 谁提供一个能用的ICHAT文字聊天室程序,急需
  11. IntelliJ IDEA For Mac 的破解方法
  12. 斐波那契数列 java
  13. html渐变色原理,CSS渐变色效果的实现方法与效果演示
  14. 深入理解栈(Stack)
  15. flask 数据库迁移migration
  16. Java咖啡馆(2)——第一杯咖啡
  17. “沉浸式大型线下游戏”?看看这次腾讯TGC上如何玩很大!
  18. Python爬虫——爬取股票信息生成csv文件
  19. 因计算机丢失d3dx9-30,Win10玩仙剑5提示d3dx9_30.dll文件丢失的解决方法
  20. PyQt 5.2 发布,此版本完全支持Qtv5.2.0

热门文章

  1. 联通4G业务或沿用沃品牌 不推无限量套餐
  2. 织梦php模板在哪个文件夹,织梦模板如何修改默认templets模板文件夹名称的方法...
  3. Vue h5 调用微信扫码接口
  4. 使用注解失败的原因及解决方法
  5. 拉东(Radon)变换
  6. 在Unity中实现体素化
  7. 离一线城市越来越远?对不起,杭州没那么不堪
  8. 区块链工程师工资小调查,工资最高的居然是杭州
  9. 详细描述NAND FLASH FTL 层算法
  10. iOS 应用信息、手机设备信息、网络信息、权限信息、GPS、网络信息、存储信息、屏幕信息、传感器信息、手机卡信息等信息获取工具