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

时间:2012-12-25 01:33:45

标签: javascript

我已经做了很多关于在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

我仍然没有得到它。有人可以帮忙吗?

3 个答案:

答案 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();
}