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

时间:2015-03-17 19:43:43

标签: javascript arrays object dynamic prototype

我正在尝试动态创建被推送到数组的'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());
}

1 个答案:

答案 0 :(得分:0)

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

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);
}

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