だから私はJavascriptでのオブジェクト定義に不慣れで、練習としてオブジェクトを回転させるプログラムを書こうとしています。私の問題は、オブジェクトを定義しようとすると、オブジェクトのプロパティの一部がオブジェクトの他の部分に依存していることです。これが許可されているかどうかはわかりません。すべての検索で、その例を見つけることができなかったからです。
私の質問は基本的にこれです:オブジェクトの以前に定義されたプロパティを使用してそのオブジェクトを定義できますか?この最も基本的な例は次のようになります。
var alfred = {
dogs: 1,
cats:this.dogs+1,
}
これは許可されていますか?もしそうなら、これは正しい構文ですか?「これ」を使う必要がある理由。新しく作成されたオブジェクトをオブジェクトの配列にプッシュしているためです。機能していない私のコードは次のとおりです。
obj.push({
canvas:document.getElementById(canvasName),
canvasName:"canvas"+objNum,
image: img,
width:objWidth,
height:objHeight,
centerX:posX,
centerY:posY,
speed:speeds,
hypSquare:Math.sqrt((this.width*this.width)+(this.height*this.height)),
angleInSquare:Math.atan(this.height/this.width),
angle:startAngle,
angleTotal:this.angle+this.angleInSquare,
offX:(this.hypSquare* Math.cos(this.anglesTotal))/2,
offY:(this.hypSquare* Math.sin(this.anglesTotal))/2,
centeredX:this.centerX-this.offX,
centeredY:this.centerY-this.offY,
})
私が電話するとき
console.log(obj[objNum].hypSquare);
(ここで、objNumは配列内のオブジェクトのインデックスにすぎません)呼び出してもNaNを取得します
console.log(obj[objNum].width);
objWidthの値を取得します。構文上の問題があるだけですか、それとも根本的に欠陥のあるオブジェクトについての私の理解ですか...
よろしくお願いします!
アイザック