动态创建原型并推送到数组

dynamically create prototypes and push to array

我正在尝试动态创建被推送到数组的 'test' 对象,我知道下面的代码不起作用,供参考以帮助解决我的问题:

var test = (function(){
    var blah;

    test.prototype.getNumber=function(){
        return blah;
    }
    test.prototype.setNumber=function(val){
        blah=val;
    }
});

var array=(function(){
    var array[];

    array.prototype.get=function(index){
        return array[index];
    }
    array.prototype.set=function(obj){
        array.push(obj);
    }

});

var objArray=new array();

for(var i=0;i<6;i++){
    objArray.set({
        setNumber(5);
    }=new test());
}

第一步是正确创建构造函数。似乎您想通过使用局部变量和闭包来模拟私有属性。在那种情况下,您必须将方法分配给实例本身,而不是原型:

this.setNumber = function(){
    return blah;
};
// instead of
// test.prototype.setNumber = ...;

array也是如此。

要添加一个实例,您所要做的就是创建一个新的 test 实例并调用它的 setNumber 方法:

for(var i=0;i<6;i++){
    var obj = new test();
    obj.setNumber(5);
    objArray.set(obj);
}

注意:构造函数名称通常以大写字母开头。