重複するキーの検索用語のため、これは本当に難しいです。私はこの回路を作っています。参考のため、スタイルに関しては、少し変更するかもしれないが(例えば、number_of_boards
など)、他のものに再利用するのではなく、プロパティ名を再利用するオブジェクト(たとえば、私はしたくない大きなオブジェクトの関数としてのオブジェクトコンストラクタ
CIRCUIT_BOARD = {
"blankGridSquare": function(){
//Returns brand new object that is one blank grid square of the map
}
, "blankMap": function(width,height){
//Returns brand new object that has a bunch of blank grid squares
}
, "copyMap": function(map){
//Returns new object with the same value as parameter map
}
, "newBoard": function(svg,width,height,ioPlugs,map){
//Returns new object with a target svg,
//either a blank map or a copy of the given map,
//a set of ioPlugs,
//the electric current set up,
//etc.
//Initializes a few other things
}
// and other functions of course...
}
:私は1つのページに私のケルト結び目発生器と回路のゲームを持っていた場合、私はKNOT.draw
とCIRCUIT_BOARD.draw
)
そうしなければならず、ここに私の現在のセットアップのショートバージョンですすべての関数を1つの変数にまとめることを取り除きます。なぜなら、1つのページに複数のゲームを配置する柔軟性が必要だからです。私は、コンストラクタを適切に作成するには、というキーワードを使用することをお読みください。しかし、私がこれらのコンストラクタにthis
を使用しようとするたびに、私は、例えばgridSquareにすべての関数が接続されている束の関数を持つマップを取得します。
したがって、問題は、複数のオブジェクトコンストラクタを、他のオブジェクトのすべてのプロパティである非インスタンスバインド関数として作成する方法です。その凝縮された質問が適切に言われているかどうかは分かりません。
'new CIRCUIT_BOARD.someFunction()'を呼び出すと、その呼び出しの中で 'this'の値が新しいオブジェクトになります。呼び出しの前に 'new'を使用しないと、' this'の値は 'CIRCUIT_BOARD'オブジェクト自体になります。 – Pointy
"blankMap"関数の中で 'new CIRCUIT_BOARD.blankGridSquare'を使うと、無関係な関数を使わずに空白を作ることができます。 ...テスト中... – RoboticRenaissance
ありがとう、Pointy。それがまさに私が必要としていたものです。次回は、そのような情報を回答に入れるべきです。私はそれをテストしたらすぐにそれを受け入れるだろう。 – RoboticRenaissance