理解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方法所掌握的相关知识点的介绍,也是本人记录笔记,如有不对之处及不周之处请大佬们指出,也希望对一些人有所帮助,咱们下次再会!

你可能感兴趣的:(理解Object.assign方法(函数))