javascript中的重复对象

栏目: JavaScript · 发布时间: 7年前

内容简介:第一个不创建副本,而只是复制引用,因此a和b指向操作后的同一个对象.但是,在第二种情况下,每个属性都是单独复制的,因此在a中创建了对象的“真实”副本(只要属性中只有原始类型,否则你会在更深层次上遇到同样的问题).所以在第一种情况下,如果你改变b.c然后a.c也会改变,而在第二种情况下它不会改变.

我看到两种复制对象的方法

1.

var a={c:1}
var b=a;
alert(b.c);//alert 1

2.

var a={c:2};
var b={};
for (i in a)
{b[i]=a[i];} 
alert(b.c);//alert 1

第一个比第二个短,那么第二个例子的效率是多少?

第一个不创建副本,而只是复制引用,因此a和b指向操作后的同一个对象.

但是,在第二种情况下,每个属性都是单独复制的,因此在a中创建了对象的“真实”副本(只要属性中只有原始类型,否则你会在更深层次上遇到同样的问题).

所以在第一种情况下,如果你改变b.c然后a.c也会改变,而在第二种情况下它不会改变.

翻译自:https://stackoverflow.com/questions/13287297/duplicate-object-in-javascript


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Python源码剖析

Python源码剖析

陈儒 / 电子工业出版社 / 2008-6 / 69.80元

作为主流的动态语言,Python不仅简单易学、移植性好,而且拥有强大丰富的库的支持。此外,Python强大的可扩展性,让开发人员既可以非常容易地利用C/C++编写Python的扩展模块,还能将Python嵌入到C/C++程序中,为自己的系统添加动态扩展和动态编程的能力。. 为了更好地利用Python语言,无论是使用Python语言本身,还是将Python与C/C++交互使用,深刻理解Pyth......一起来看看 《Python源码剖析》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具