0

私はjsでオブジェクトを使用することについて多くのことを読みました。これは、オブジェクトの配列を作成し、それぞれの中でメソッドを定義するために私が見つけた手法の1つです。

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

まだわかりません。誰か助けてもらえますか?

4

3 に答える 3

2

自分のオブジェクトではなく、ジェネリックオブジェクトをインスタンス化しています。

これを試して:

objects[i] = new myObj;
于 2012-12-25T01:36:11.970 に答える
1

インスタンス化されていません!

交換:

var myObj = new Object();
objects[i] = myObj;

と:

objects[i] = new myObj;
于 2012-12-25T01:36:31.817 に答える
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();
}
于 2012-12-25T01:38:06.933 に答える