没太看明白 楼主是不是 Object和Array还没搞明白?

解决方案 »

  1.   

     Array 不也是个对象么? 
      

  2.   

    如楼上所说
    UserInfo中用this整出UserInfo的两个属性
    和var userInfo = new Array(); 没关系呀,你给这两个放一起有什么用呢?
      

  3.   

    var userInfo = new Array();    function UserInfo(userID,userType)  
    {  
        this.userID = userID;  
        this.userType = userType;    
    }  
      

  4.   

     我push时 用的userInfo.push(new UserInfo(UserID,UserType));这样是可以的.我想问的是否在调用userInfo对象时是否需要加this.来定位他.  或者我的userInfo和UserInfo是否定义的一样了导致的问题。 但是javascript好象是区分大小写的呢~ 
      

  5.   

    javascript 是大小写敏感的.
    使用中你要注意变量的作用域.
      

  6.   

    这个地方的userInfo应该是全局的,
    因此不要加this.,
    加了的话,就变成对局部变量的访问了,
    也就是说你访问的就不是全局的那个userInfo了.
      

  7.   

     刚刚调试了一下. 好象不是语法问题了。  打个比方,在A发送消息的时候建立一个数组对象.     B发送消息给A的时候,A需要用此数组对象的值与B发过来的消息进行对比,但是此时A的数组对象有时是空的,有时有值.
      

  8.   

      问题已找到,麻烦帮忙解决下~ 呵呵..  
     我用A页面调用JS类里面的一个对象,然后又用B页面调用JS类里的方法,这样2个对象肯定不是同一个对象了。  怎么解决呢?
      

  9.   


    你不会是创建了一个局部的数组吧?
    你把 var userInfo = new Array();
    这句的var改为,
      userInfo = null;
      userInof = new Array();当然也可能是逻辑问题,
    比如你在不应该 new Array的地方多做了一次.不看你的代码,都是在瞎猜.
      

  10.   

    var userInfo = new Array();//这里是定义一个数组,当然更建议采用json方式定义 var userInfos = [];更小巧function UserInfo(userID,userType) //这里是采用构造函数方式定义一个类,                       
    {                                  //当然还有其它方式http://book.csdn.net/bookfiles/110/index.html
        this.userID = userID; 
        this.userType = userType;   
    }  /* 如果想将UserInfo的对象实例存放到数组userinfos中,应该这样 */
    var u1 = new UserInfo(100,"manager");
    userInfos.push(u1);
    var u2 = new UserInfo(110,"expert");
    userInfos.push(u2);/* userInfos = [u1,u2];也可以 */
      

  11.   

    function Person(name) {   this.name = name;
    }
      

  12.   

    刚试了下,还是不行. B页面给此对象赋值. A对象调用此对象还是为null的。
      

  13.   


    OOH.才看到这个.
    你访问的根本就不是一个空间的对象.
    A页面和B页面是什么关系?
      

  14.   

    如果是用window.open()打开的B页面的话,
    可以在B页面中通过 window.opener.userInfo 来访问 A画面中的 userInfo对象,
      

  15.   

      直接通过链接我把Array对象放在父窗体中,给他赋值,到子窗体通过parent调用对象时,他的length还是为0.  !--
      

  16.   

    a.html
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
            <title>Untitled Document</title>
        </head>
        <script src="userInfo.js"></script>
        <script language="JavaScript">
            userInfo.push(new UserInfo("rose", "nurse"));
    function showInfo(){
    var msg="";
    for(var i=0;i<userInfo.length;i++){
    if(msg!=""){
    msg += "\n";
    }
    msg += "userId=" + userInfo[i].userID + "; userType=" +  userInfo[i].userType +";"
    }
    alert(msg);
    }
        </script>
        <body>
            <input type="button" value="open" onclick="window.open('B.html');">
    <input type="button" value="tell" onclick="showInfo();">
        </body>
    </html>b.html
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
            <title>Untitled Document</title>
        </head>
        <script src="userInfo.js">
        </script>
        <script language="JavaScript">
            function doRet(){
                var msg = "";
                var arr = window.opener.userInfo;
                window.opener.pushInfo(document.getElementById("uId").value, document.getElementById("uType").value);
                msg = "";
                for (var i = 0; i < arr.length; i++) {
                    if (msg != "") {
                        msg += "\n";
                    }
                    msg += "userType=" + arr[i].userID + "; userType=" + arr[i].userType + ";"
                }
                close();
            }
        </script>
        <body>
            USer ID:<input type="text" id="uId" value="john">
            <br>
            User Type:<input type="text" id="uType" value="docutor">
            <br>
            <hr><input type="button" value="ok" onclick="doRet();">
        </body>
    </html>userinof.js
    var userInfo = new Array();function UserInfo(userID, userType){
        this.userID = userID;
        this.userType = userType;
    }function pushInfo(userId, userType){
        userInfo.push(new UserInfo(userId, userType));
    }
      

  17.   

    上面是一个例子供你参考一下.
    除了前面说的问题以外,
    还有一个问题,
    你不能把在子窗口中创建的对象push对父窗口的数组中.
    因为,子窗口关闭后,它生成的对象也被销毁了.
    因此我做了一了pushInfo的方法.
    通过调用父窗口的这个方法,
    保障对象在父窗口中被创建.