搜尋

首頁  >  問答  >  主體

javascript - JS在類別中聲明數組時出現問題

var dynamic_particle=function(){
        this.init();
    }
dynamic_particle.prototype={
       init:function(){
           this.a=new Array();
           this.a.push(1);
           alert(a[0]);
        }
    }

a出現錯誤為未定義

淡淡烟草味淡淡烟草味2791 天前694

全部回覆(2)我來回復

  • 仅有的幸福

    仅有的幸福2017-05-19 10:27:21

    var dynamic_particle=function(){
            this.init();
        }
    dynamic_particle.prototype={
           init:function(){
               this.a=new Array();
               this.a.push(1);
               alert(this.a[0]);
            }
        }

    你都知道前面用this.a ,alert的時候為何不加上this.呢…一定報錯

    回覆
    0
  • 習慣沉默

    習慣沉默2017-05-19 10:27:21

    封裝方式,一般是這樣使用的:

    var defOpt = {
        a: [1]
    }
    
    var dynamic_particle=function(options){
        if(!(this instanceof dynamic_particle)){
            return new dynamic_particle(options);
        }
        this.opt = $.extend({}, defOpt, options);
        this.init();
    }
    dynamic_particle.prototype={
    
        init:function(){
           console.log('初始化数据:', this.opt);
        },
        other: function() {
            console.log('调用option中的新数据', this.opt.newData);
        }
    }
    var dp = dynamic_particle({
        newData: [2] 
    })
    dp.other()

    回覆
    0
  • 取消回覆