理解Object.assign方法(函数)

assign的作用是什么,assign的实现原理怎么写?标题上为什么有个(函数)?相关面试考的是什么?应用场景有啥?客官往里走,里面都有:

基本语法:

        Object.assign(target,...source);

基本概念:

         Object.assign(目标对象,...一个或者多个源对象)方法可以用来将源对象(source)中所有可枚举(枚举:就是可以遍历出来,不可枚举就是遍历不出来)的属性,复制到目标对象(target),也就是合并两个对象或多个对象给目标对象,注意:第一个参数一定是目标对象

代码展示:

基本语法图

上方图片就是assign的基本使用方法,这里注意如果目标对象和源对象中有相同的键值对时,后者覆盖前者,但是这样写你会发现一个事情。

改变目标对象

我这里输出了一下目标对象,目标对象被改变了,那我不想改变目标对象,怎么办呢?来了

不改变任何对象

这次我们可以看到,target没有被改变,因为 目标对象 换了一个空对象来接收复制过来的所有键值对。以上就是他的作用了,下面来说一下它的实现原理是怎样的呢?

实现原理:

实现原理图

这里有人会有疑惑了,为什么是判断是不是一个函数呢?assign不是一个方法嘛?

        函数是一段代码,需要通过名字来进行调用,方法(method)是通过对象调用得javascript函数。也就是说,方法也是函数,只是比较特殊得函数。

        你也可以自己输出一下一目了然:

方法与函数

assign深浅拷贝:

        Object 中得复制 是属于浅拷贝 不是深拷贝, 它只是复制了 值存储空间引用类型地址而已,那么也就得出了,assign是浅拷贝不是深拷贝。

assign本人应用场景:

        在写vue配置axios请求拦截的时候给headers添加token、deviceCode等信息

应用场景图

以上就是本人对Object.assign方法所掌握的相关知识点的介绍,也是本人记录笔记,如有不对之处及不周之处请大佬们指出,也希望对一些人有所帮助,咱们下次再会!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 属性的简洁表示法 ES6允许直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。 上面代码表明,ES6允...
    呼呼哥阅读 2,947评论 0 2
  • 1.属性的简洁表示法 允许直接写入变量和函数 上面代码表明,ES6 允许在对象之中,直接写变量。这时,属性名为变量...
    雨飞飞雨阅读 1,165评论 0 3
  • 1 基本用法 Object.assign方法用于对象的合并,将源对象( source )的所有可枚举属性,复制到目...
    Api调用师阅读 885评论 0 4
  • 属性的简洁表示法 ES6允许直接写入变量和函数,作为对象的属性和方法。 上面代码表明,ES6允许在对象之中,直接写...
    oWSQo阅读 525评论 0 0
  • 一、概览 Object.is() Object.assign() Object.getOwnPropertyDes...
    HalShaw阅读 2,201评论 0 0