oldObj是一个对象,而不是值 
例如var newObj=oldObj; 
如果想oldObj改变的时候不影响到newObj; 
可以这样写一个函数 
复制代码 代码如下:
 
function clone(myObj){ 
if(typeof(myObj) != 'object') return myObj; 
if(myObj == null) return myObj; 
var myNewObj = new Object(); 
for(var i in myObj) 
myNewObj[i] = clone(myObj[i]); 
return myNewObj; 
} 
然后这样调用
newObj=clone(oldObj)
之后,oldObj的值无论怎么改变都不会影响newObj
JavaScript复制对象
语法:
oElement = object . cloneNode ( bCloneChildren )
参数:
bCloneChildren : 可选项。布尔值(Boolean)。false | true
false : 默认值。克隆 object 时不包括 object 的 childNodes 集合。即其所有子对象。
true : 克隆 object 时包括 object 的 childNodes 集合。即其所有子对象。
返回值:
oElement : 对象(Element)。返回克隆后的新对象的引用。
说明:
在文档结构中克隆 object 。
克隆后,获取克隆对象的 id 时,将返回一个集合。
在运行时使用此方法是可以的。在对象的关闭标签被解析前,文档空间可能不能被呈递。
示例代码:
复制代码 代码如下:
 
<script> 
function rdl_fnClone(){ 
var oCloneNode=oList.cloneNode(true); 
cloneArea.appendChild(oCloneNode); 
} 
</script> 
<table width=98%><tr><td> 
<ul id=oList> 
<li>第1个列表项目 
<li>第2个<a href="#">列表项目</a> 
<li>第3个列表项目 
</ul> 
</td><td id=cloneArea> 
</td></tr></table> 
<input type=button value=" 克隆 " onclick= "rdl_fnClone();"> 
您可能感兴趣的文章:
