我定义了一个数组
function A()
{
  this.num = new Array();
}别的方法里
//初始化数组A.prototype.X() = function()
{
   this.num[i] 
   // ie 提示无权限访问(各种方法均不可用)(能获取它的length)   firefox却很正常
}?? 何解  气 急

解决方案 »

  1.   

    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function A()
    {
      this.num = new Array();
    }A.prototype.X = function()
    {
        var i=10;
       this.num[i] = Math.pow(i,2);
       alert(this.num[i]);
    }
    var a = new A();
    a.X();
    //-->
    </SCRIPT>
      

  2.   

    A.prototype.X = function(i) {
    return i < this.num.length ? this.num[i] : undefined;
    };
    你要做虾米?
      

  3.   

    小梅老师好,小梅老师辛苦啦忽发现JS版,可以申请斑竹了,偶本着赤诚的心,推荐你的说:D
      

  4.   

    为什么 我把它移植到稍复杂情况 不对呢 打星的地方 怎么搞都不对 气function Timer(startTime,endTime,spe,imgFolder,imgType){

    this.startTime = startTime;
    this.endTime = endTime;

    this.spe = spe;

        this.imgFolder = imgFolder;
    this.imgType = imgType;
    this.num = new  Array()

    this.sysTimer = null;

    this.Load();
    }Timer.prototype = {
     
         Load:function(){  
           
    for(var i = 0; i < 10; i++){   
    this.num[i] = new Image();
    this.num[i].src = this.imgFolder + i + this.imgType;  
        }
    var TM = this;
        var checkTimer = setInterval(function(){   
    var loadFlag = 1;
    for(var i = 0; i < 10; i++){
    if(TM.num[i].readyState != "complete"){
    loadFlag = 0;
    break;
    }
    }
    if(loadFlag = 1){
    clearInterval(checkTimer);
    checkTimer = null;
    TM.Init();
    }
       
    },20); 
    },

    Init:function(){

      var strTimer = '<ul id="Timer">\
                    <li id="day"></li>\
    <li id="hour"></li>\
    <li id="minute"></li>\
    <li id="second"></li>\
    </ul>';
            
    document.write(strTimer);

    this.Start();
    },

    Start:function(){
       
                 
       var endTime = this.GetTime(this.endTime);
       
       var TM = this;
       TM.Graphic(100,10,5,2);
       
       this.sysTimer = setInterval(function(){
       
       var now  = new Date();
       var diff = -480 - now.getTimezoneOffset();  //是北京时间和当地时间的时间差
       
       var leave  = (endTime.getTime() - now.getTime()) + diff*60000;
       var day    = Math.floor(leave / (1000 * 60 * 60 * 24));
       var hour   = Math.floor(leave / (1000*3600)) - (day * 24);
       var minute = Math.floor(leave / (1000*60)) - (day * 24 *60) - (hour * 60);
       var second = Math.floor(leave / (1000)) - (day * 24 *60*60) - (hour * 60 * 60) - (minute*60);
             
       
       TM.Graphic(day,hour,minute,second);
       
      },1000);
          

    },/************************************************************************888

    Graphic:function(day,hour,minute,second){

     var TM = this;
     var objTimer = document.getElementById("Timer");
       
     if(objTimer != null){
          var objDay    = document.getElementById("day");
      var objHour   = document.getElementById("hour");
          var objMinute = document.getElementById("minute");
      var objSecond = document.getElementById("second");
         
      var strImg = "";
     
      for(var i=0; i < day.toString().length; i++){
       var numChar = parseInt(day.toString().charAt(i));
    alert(this.num.length)
    alert(this.num.join(","))

    strImg += '<img src=' + this.num[0].src + "/>";

    //strImg += '<img src=' + TM.num[parseInt(day.toString().charAt(i))].src + "/>"
      }
      objDay.innerHTML = strImg;
      strImg = "";   
       
      for(var i=0; i < hour.toString().length; i++){   
    strImg += '<img src=' + this.num[parseInt(hour.toString().charAt(i))].src + "/>"
      }
      objHour.innerHTML = strImg;
      strImg = "";
      
      for(var i=0; i < minute.toString().length; i++){   
    strImg += '<img src=' + this.num[parseInt(minute.toString().charAt(i))].src + "/>"
      }
      objMinute.innerHTML = strImg;
      strImg = "";
      
      for(var i=0; i < second.toString().length; i++){   
    strImg += '<img src=' + this.num[parseInt(second.toString().charAt(i))].src + "/>"
      }
      objSecond.innerHTML = strImg;
        
      
     }


    },

    ********************************************8 GetTime:function(strDate){

      var time = new Array();
      var objDate = null;
      var spe = this.spe;
      var sArray = strDate.split(this.spe);   
        
      time[0] = sArray[0];
      time[1] = parseInt(sArray[1]) - 1;
      time[2] = sArray[2];
      time[3] = (sArray[3]== null)?0:sArray[3];
      time[4] = (sArray[4]== null)?0:sArray[4];
      time[5] = (sArray[5]== null)?0:sArray[5];

    objDate = new Date(time[0],time[1],time[2],time[3],time[4],time[5]);

    return objDate;   

    }


    }myTimer = new Timer("","2007/8/12/12/24/36","/","images/",".gif");
      

  5.   

    我就做个简单的倒计时哦 
    打星的地方 alert() ie 全是错哦 没辙喽 那段访问 num数组 均无效 firfox 没问题
      

  6.   

    没有权限 为什么能获取到他的长度呢 alert(this.num.length)  //可以获取 10
    alert(this.num.join(",")) //提示没权限  实在不解
      

  7.   

    怎么样小梅老师,偶的建议不错吧。。^o^
    这第二点改下就可以显示ary.join了。。第一点那个等号写错了。。
    if (loadFlag == 1) {var strTimer = [
    '<ul id="Timer">',
    '<li id="day"></li>',
    '<li id="hour"></li>',
    '<li id="minute"></li>',
    '<li id="second"></li>',
    '</ul>'
    ];document.body.innerHTML += strTimer.join("");
      

  8.   

    if(loadFlag = 1){
    clearInterval(checkTimer);
    checkTimer = null;
    TM.Init();
    }
    if条件好象有问题,真不知道"firefox却很正常"这个结论是怎么得出的?
    firefox真能运行么???
      

  9.   

    是啊 现在是没解决 firefox判断 图片载入的情况 
    这也是个问题 求解我市说后面瓦  引用数组的那部分 firefox 正常
      

  10.   

    muxrwc(十月,期待)  我按你的改了不行 瓦 document.body.innerHTML += strTimer.join("");
    我没用这个 我要在任何地方放置阿
    document.write(strTimer.join(""));
    真挠头阿
      

  11.   

    按位置,也不一定非得用document.write啊。
    你只要不用document.write就没事了。。
    回家勒
      

  12.   

    果然是啊  你真牛 可这是为什么呢 那 firefox 判断图片已载入完了 用什么方法 求解