我正在尝试动态创建被推送到数组的'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());
}
答案 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);
}
注意:构造函数名称通常以大写字母开头。