0

ねえ、私はJavascriptを手に入れ始めました、そして私はオブジェクトに関して少し問題を抱えています。さまざまな側面を取り入れたシェイプクラスを作成しようとしています。これらの側面を使用すると、より多くの特性が作成されるため、ポイントの位置の座標を保存できます。私が今持っているのはサイズを取り入れているクラスです。forループを使用して、位置を格納するための「プロパティ」を作成したいと思います。学習目的のために、これらを0に設定して、これが可能かどうかを確認します。オブジェクトに関する説明をいただければ幸いです。

function Shape(size) {
    this.size = size
    for(var i=0; i<size; i++){ //tries to create the properties
        //this[i].posX: 0;
        //this[i].posY = 0;
    }
}

理想的には、これらにアクセスしたいので、次のタイプの形式になります。

var triangle = new Shape(3);
triangle[0].posX = 100; // So essentially I could set this to 100, the integer in the [] would represent a side.
triangle[0].posY = 100; // etc ... for the rest of the sides

ありがとう!

4

3 に答える 3

0

私はあなたの質問/問題が何であるかを理解するのに苦労しています。しかし、私の意見では、Javascriptは、C#やVB.NET、または同様の言語のように「プロパティ」を実際にはサポートしていません。ソリューションは、2つの形式のメソッドを使用して
います。1。値を設定するメソッド。
2.値を返すメソッド。
したがって、クラスには次の4つのメソッドのようなものが必要です。

setPosX(var posx)
getPosX()
setPosY(var posy)
getPosY()

次に、配列を作成するだけです。

var triangles = new Array();

そして、forループを介して値を指定します。

function Shape(size) {
        for(var i=0; i<size; i++){ //tries to create the properties
            triangles[i].setPosX(0); // or any other value
            triangles[i].setPosY(0);
        }
    }

また、この関数はクラス構造の外にあることに注意してください。お役に立てれば ;)

于 2012-12-31T06:13:45.693 に答える
0

以下のコードを試してください。それはあなたが望むものですか?

function Shape(size) {
    var arr = new Array(size);

    for(var i=0; i <size; i++){ //tries to create the properties
        arr[i] = {
             posX: 0,
             posY: 0
        };
        //arr[i] = {};
        //arr[i].posX = 0;
        //arr[i].posY = 0;
    }

    return arr;
}

今、あなたはすることができます:

var triangle = new Shape(3);
triangle[0].posX = 100; // So essentially I could set this to 100, the integer in the [] would represent a side.
triangle[0].posY = 100; // etc ... for the rest of the sides
于 2012-12-31T06:19:41.750 に答える
0

シェイプには可変数の辺を含めることができるため、Shapeクラスのプロパティとしてポイントの配列を作成することをお勧めします。

function Shape(size) {
    this.size = size;
    this.point = new Array();//stores an Array of Points
    for(var i=0; i<size; i++){
        this.point[i] = new Point(0, 0);
    }
}

function Point(x, y){
    this.posX = x || 0;
    this.posY = y || 0;
};

このようにして、次のコードで三角形を作成できます。

// Creates a triangle with the points at (100, 100), (0, 0), and (0, 0)
var triangle = new Shape(3);
triangle.point[0].posX = 100;
triangle.point[0].posY = 100;

これがお役に立てば幸いです。

于 2012-12-31T06:20:24.340 に答える