如题.传递进来的参数来声明对象? 不能用eval该怎么做.
eval对大数据量会使IE死掉的.function getSubtree(nodes){
 for(i=0;i<nodes.length;i++){
  var nodeId =(nodes[i].getElementsByTagName("nodeId")[0].firstChild.nodeValue)
  var nodeName = (nodes[i].getElementsByTagName("nodeName")[0].firstChild.nodeValue);
  var nodePid = (nodes[i].getElementsByTagName("nodePid")[0].firstChild.nodeValue);
  var nodeUrl = (nodes[i].getElementsByTagName("nodeUrl")[0].firstChild.nodeValue);
  var nodeOpenIcon =(nodes[i].getElementsByTagName("nodeOpenIcon")[0].firstChild.nodeValue);
  var nodeCloseIcon =(nodes[i].getElementsByTagName("nodeCloseIcon")[0].firstChild.nodeValue);
  var nodeChilds = (nodes[i].getElementsByTagName("nodeChilds")[0].firstChild.nodeValue);
  var nodeParams = (nodes[i].getElementsByTagName("nodeParams")[0].firstChild.nodeValue);
  对象nodeId = 对象nodePidaddNode(nodeId,nodePid,nodeName,nodeName,"",nodeUrl,nodeParams,false,false,nodeChilds,"-1",nodeOpenIcon,nodeCloseIcon,nodeCloseIcon);
  tempTree.setFinish(true);
  if(i%10==0){
  alert("数据加载中,请等候...");
  window.setTimeout(doSure,100);
  }
  CollectGarbage();
}

解决方案 »

  1.   

    上面的对象nodeId = 对象nodePidaddNode 就是动态创建的的对象
    不能要eval来执行.要求
      

  2.   

    你想实现什么,很大的DOM操作会把IE弄死
      

  3.   

    window["对象"+nodeId] = 对象;
      

  4.   

    我知道eval是会把里面的字符串给编译成二进制代码,再执行.所以如果直接eval就会死IE
    window["对象"+nodeId] 本身是一个什么机制?
      

  5.   

    nodePidaddNode是啥玩意儿? 看不明白
    像是个构造函数
      

  6.   

    return { o:objEv.id , x:ev.x , y:ev.y };这个就是返回一个对象。
      

  7.   

    知道楼上的.
    我想让传进来的参数,解释成对象
    例如
    function gete(arr){
     var arr[1]=arr[0].Add();
    }arr是一个字符串数组.
    定义的对象名称就是arr[1];
    而变量名为arr[0]的对象有add()这个方法.
      

  8.   

    <html>
    <head>
    <title>holle word!</title>
    <script language="javaScript">var linkTo = "http://www.baidu.com"</script>
    </head>
    <br/>
    <script language="javaScript">
    document.write(linkTo);
    alert(window["linkTo"]);
    </script>
    <a href="&{linkTo}" >百度</a>
    <body>
    </body>
    </html>
    像上面这样取对象看看。