.push无法在构造函数中工作

时间:2014-10-04 20:17:33

标签: javascript constructor

如果我这样做:

function a(){
    a.list.push(this);
}
a.list = [];

new a();
调用a.list时,

new a()会更新。但现在,

function Spark(ctx){
    console.log("created", this);
    Spark.list.push[this];
}
Spark.list = [];
Spark.max = 100;
Spark.createSparks = function(ctx){
    if(this.list.length < this.max){
        new Spark(ctx);
    }
};

Spark.createSparks();

此处Spark.list.push执行时没有任何问题,但Spark.list仍为空。那是为什么?

1 个答案:

答案 0 :(得分:5)

您没有调用该功能。

更改

Spark.list.push[this]

Spark.list.push(this)