javascript复制对象使用说明

  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="#" onclick="return false;">列表项目</a>

  <li style="font-weight:bold;">第3个列表项目

  </ul>

  </td><td id=cloneArea>

  </td></tr></table>

  <input type=button value=" 克隆 " onclick= "rdl_fnClone();">