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

1、Object.assign()可以在对象为一层的时候,实现简单的“深拷贝功能”

var obj1 = {a:'1',b:'2'}
var obj2 = Object.assign({}, obj1 )
obj2.a = '3'
console.log(obj1) // {a:'1',b:'2'}
console.log(obj2)  //{a:'3',b:'2'}
 
当被可枚举属性为一层的对象时,使用Object.assign可以实现简单的‘深拷贝’功能,不会改变obj1的数据
 

2、Object.assign()可以在对象为两层或者多层的时候,此时第一种的“深拷贝功能”便无法继续使用。

var obj1 = {name:{a:'1',b:'2'}}
var obj2 = Object.assign({}, obj1 )
obj2 .name.a = '4'
console.log(obj1 )   //name: {a: 4, b: '2'}

console.log(obj2 )   //name: {a: 4, b: '2'}

 
当被可枚举属性为多层的对象时,使用Object.assign可以复制obj1的内容,但是会改变obj1的数据
 

神奇的Object.assign()的更多相关文章

  1. Object.assign方法复制或合并对象

    Object.assign() 方法可以把任意多个的源对象自身的可枚举属性拷贝给目标对象,然后返回目标对象 var obj = { a: 1 }; var copy = Object.assign({ ...

  2. Object.assign()方法

    对象的扩展 1.ES6中,对象的属性和方法可简写:对象的属性值可不写,前提是属性名已经声明: var name = "zhangsan"; "; var obj = { ...

  3. 微信不支持Object.assign

    微信不支持Object.assign,让我Vue怎么用QAQ... 解决方法: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refe ...

  4. object.assign()方法的使用

    地址:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

  5. [Javascript] Object.assign()

    Best Pratices for Object.assign: http://www.cnblogs.com/Answer1215/p/5096746.html Object.assign() ca ...

  6. [Redux] Avoiding Object Mutations with Object.assign() and ...spread

    Learn how to use Object.assign() and the spread operator proposed for ES7 to avoid mutating objects. ...

  7. [ES6] Object.assign (with defaults value object)

    function spinner(target, options = {}){ let defaults = { message: "Please wait", spinningS ...

  8. Object.assign()

    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/assign 说明 Ob ...

  9. 学习Object.assign()

    Object.assign()用于将所有可枚举的值从一个或多个源对象复制到目标对象.它将返回目标对象. 语法 Object.assign(target, ...source); var obj = { ...

  10. es6 Object.assign

    ES6 Object.assign 一.基本用法 Object.assign方法用来将源对象(source)的所有可枚举属性,复制到目标对象(target).它至少需要两个对象作为参数,第一个参数是目 ...

随机推荐

  1. 【Django drf】视图类APIView之五层封装 ApiView的类属性 drf配置文件

    目录 ApiView的类属性 drf 配置文件之查找顺序 drf之请求 APIView之请求相关配置 drf之响应 APIView之响应相关配置 Response对象属性 视图类 序列化类 路由 基于 ...

  2. MySQL-知识点补充

    1.SQL注入问题 简单实现利用数据库实现注册登录功能: import pymysql conn = pymysql.connect( host='127.0.0.1', port=3306, use ...

  3. Docker挂载

    1.挂载的概念 预备:你需要了解docker的基本知识 docker实现了容器部署,那当我们需要配置或者查看容器生成的日志文件怎么办? docker提供了挂载机制:挂载能够将容器内的目录/文件和外部的 ...

  4. keypoint数据结构

    公有属性 (float)angle:角度,表示关键点的方向,-1为初值. (int)class_id:当要对图片进行分类时,我们可以用class_id对每个特征点进行区分,未设定时为-1,需要靠自己设 ...

  5. MySQL创建表的三种方式

    创建表的三种方式 通过create语句直接创建 语法: create [TEMPORARY] table [IF NOT EXISTS] table_name ( col_name column_de ...

  6. ACR2022的辩论:DMARDs在pre-RA中的作用

    ACR2022的辩论:DMARDs在pre-RA中的作用 2022年11月13日   亚临床RA在风湿病学实践中越来越常见:然而,目前尚不清楚如何管理这些患者,以及启动DMARD是否可以预防RA的发展 ...

  7. placeholder 颜色修改

    input::-webkit-input-placeholder{ color:#fff; } input::-moz-placeholder{ /* Mozilla Firefox 19+ */ c ...

  8. key对象转换数组title

    before <!DOCTYPE HTML> <html> <head> <title>key对象转换数组title</title> < ...

  9. 基于C++的OpenGL 02 之着色器

    1. 概述 本文基于C++语言,描述OpenGL的着色器 环境搭建以及绘制流程可参考: 基于C++的OpenGL 01 之Hello Triangle - 当时明月在曾照彩云归 - 博客园 (cnbl ...

  10. 一次k8s docker下.net程序的异常行为dump诊断

    背景 昨天,一位朋友找到我寻求帮助.他的项目需要调用一个第三方项目的webAPI.这个webAPI本身可从header, query string中取相关信息,但同事发现他在调用时,无法按期望的那样从 ...