如何在JavaScript中复制变量

  介绍

这篇文章给大家介绍如何在JavaScript中复制变量,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

1。原生方法解决
最简单的办法就是一个一个循环复制给新的变量。举栗:

复制代码
复制代码
函数副本(mainObj) {
让objCopy={};//objCopy将存储的副本mainObj
让关键;

mainObj(关键){
objCopy[主要]=mainObj(例子);//每个属性复制到objCopy对象
}
返回objCopy;
}

const mainObj={
: 2,
b: 5,
c: {
x: 7,
y: 4,
},
}

console.log(复制(mainObj));
复制代码
复制代码
缺点:

1。objCopy的对象。原型方法与mainObj会不一样,通常情况下我们需要完全一样的副本时,这个办法并不适用。

2。麻烦而且费时费的事,代码无法重用。

3。如果原来的变量中包含对象类型,复制时还是会把这个子变量的索引交给新的变量,并不是创建了新的副本。

2。深度复制
利用JSON转换来复制变量。先将原先的变量转换为字符串然后再重新组装成JSON,这样会产生一个不一样的副本。

复制代码
复制代码
让obj={
: 1,
b: {
c: 2,
},
}

让newObj=JSON.parse (JSON.stringify (obj));

obj.b。c=20;
console.log (obj);//{1,b: {c: 20}}
console.log (newObj);//{1,b: {c: 2}}(新对象的完整!)
复制代码
复制代码
缺点:

1。变量很多的时候非常耗时耗内存。

3。使用Object.assign ()
使用举例:

复制代码
复制代码
//
循环对象让obj={
: & # 39;一个# 39;,
b: {
c: & # 39; c # 39;,
d: & # 39; d # 39;,
},
}

obj。c=obj.b;
obj。e=obj.a;
obj.b。c=obj.c;
obj.b。d=obj.b;
obj.b。e=obj.b.c;

让newObj2=对象。分配({},obj);

console.log (newObj2);
复制代码
复制代码
可以把它封装成一个方法:

复制代码
//封装成方法
//返回一个新的变量副本
//得到对象的一个副本
函数getNewObjectOf (src) {
返回对象。分配({},src);
}
复制代码
缺点:

1。这个也是浅复制(仅复制顶层的属性,底层属性并不复制)。深层属性会同样返回索引,与原变量分享一个地址。(看下面栗子)

复制代码
复制代码
让obj={
: 1,
b: {
c: 2,
},
}
让newObj=对象。分配({},obj);
console.log (newObj);//{1,b: {c: 2}}

obj。=10;
console.log (obj);//{10 b: {c: 2}}
console.log (newObj);//{1,b: {c: 2}}

newObj。=20;
console.log (obj);//{10 b: {c: 2}}
console.log (newObj);//{20 b: {c: 2}}

newObj.b。c=30;
console.log (obj);//{10 b: {c: 30}}
console.log (newObj);//{20 b: {c: 30}}

//注意:所有变量的*。b。c都等于30;原因看上面解释。
复制代码
复制代码

结论:
原文中还有很多其他的办法,但此文仅摘抄出最有用的几个。一般不会用到第一种办法,如需要复制的变量有很多层的话,需要用第二种办法来复制,如果变量仅仅包含一层(如json格式的配置信息变量),第三种是最高效的。

再次给出封装好的方法:

//,封装成方法//,返回一个新的变量副本//,get  a  copy  of  an 对象   function  getNewObjectOf (src), {   ,return  Object.assign ({}, src);   } JavaScript有什么特点

1, js属于一种解释性脚本语言;2,在绝大多数浏览器的支持下,js可以在多种平台下运行,拥有着跨平台特性;3,js属于一种弱类型脚本语言,对使用的数据类型未做出严格的要求,能够进行类型转换,简单又容易上手;4,js语言安全性高,只能通过浏览器实现信息浏览或动态交互,从而有效地防止数据的丢失;5,基于对象的脚本语言,js不仅可以创建对象,也能使用现有的对象。

关于如何在JavaScript中复制变量就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

如何在JavaScript中复制变量