前端开发

 首页 > 前端开发 > javascript > js克隆对象、数组的常用方法

js克隆对象、数组的常用方法

分享到:
【字体:
导读:
          Ext的两种克隆的方法: 可以克隆对象、数据等:var newJson = Ext.clone(json); 只能克隆数组:var newJson = Ext.Array.clone(json); JQuery的方法: 深复制【可以迭代】:var newJson = jQuery.extend(true,{}, j...

Ext的两种克隆的方法:

可以克隆对象、数据等:var newJson = Ext.clone(json);

只能克隆数组:var newJson = Ext.Array.clone(json);

 

JQuery的方法:

深复制【可以迭代】:var newJson = jQuery.extend(true,{}, json);

浅复制【不能迭代】:var newJson = jQuery.extend({}, json);

var newJson = $.map(json,function (n) { return n; });

 

数组的克隆方法:

var newJson = json.concat();

var newJson = json.splice(0);

 

此上几种方法都是复制一个新的对象或者数组,但是如果直接通过parent【iframe情况】的方式去父窗口的对象的时候会有问题【存在引用关系】,需要注意,可以把取的方式改成传递数据的方式。


分享到:
js数组引用问题之js数组如何实现拷贝替换
最近在网上看到一篇关于js数组复制最有效的方法是直接使用slice和concat方法。这2个方法的确是最快的把数组成功复制,而不是引用。可以运行实例: 可以看到这2个方法只是复制了数组的第一维,由于数组第一维存放的是第二维的引用,而第二维才是实际存放他们的内容。就此我们可以联想到网上流行的复制对象的函数,其实...
JS中如何复制数组一、 错误实现二、 使用...
一、 错误实现 var array1 = new Array("1","2","3");  var array2;  array2 = array1;  array1.length = 0;  alert(array2); //返回为空 这种做法是错的,因为javascript分原始类型与引用类型(与java、c#类似)。Array是引用类 型。array2得到的是引用,所以对array1的修改会影响到array2。 二、 使用slice() 可使用s...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……