我已经做了很多关于在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
。
我仍然没有得到它。有人可以帮忙吗?
答案 0 :(得分:2)
您正在实例化一个通用对象,而不是您自己的对象。
试试这个:
objects[i] = new myObj;
答案 1 :(得分:1)
替换:
var myObj = new Object();
objects[i] = myObj;
使用:
objects[i] = new myObj;
答案 2 :(得分:1)
因为您将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();
}