我读了很多关于在js中使用对象的书,这是我发现的创建对象数组并在每个对象中定义方法的技术之一:
function myObj(){
this.dCount = 0;
this.myMethod = function(){
dCount = 1;
console.log(dCount);
}
}
var objects = new Array();
function loadObjs(){
for(var i = 0; i < 4; i++){
var myObj = new Object();
objects[i] = myObj;
}
objects[0].myMethod();
}
但是,这(以及我尝试过的所有其他技术)返回objects[0].myMethod is not a function
。
我还是不明白。有人能帮帮我吗?
您正在实例化一个泛型对象,而不是您自己的。
试试这个:
objects[i] = new myObj;
您还没有实例化!
替换:
var myObj = new Object();
objects[i] = myObj;
:
objects[i] = new myObj;
因为您将myObj
变量实例化为Object
类而不是myObj
类。
function myObj(){
this.dCount = 0;
this.myMethod = function(){
dCount = 1;
console.log(dCount);
}
}
var objects = new Array();
function loadObjs(){
for(var i = 0; i < 4; i++){
// var myObj = new myObj();
// objects[i] = myObj;
// this is better to separate the variable name from class name. so:
var m = new myObj();
objects[i] = m;
}
objects[0].myMethod();
}