尝试学习如何在新对象中定义方法



我读了很多关于在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();
}

最新更新