チェス盤のようなオブジェクトの 2 次元配列があります。
オブジェクトを取得できますdata.field(x,y);
(オブジェクトはオブジェクトの2次元配列内に格納されます)
各フィールドに次の関数が必要です: top
、bottom
、left
、right
隣接フィールドを返します。
たとえばdata.field(3,3).top().left().bottom().name
、フィールド名 (4,3) を返します。
しかし: オブジェクトごとにそれらの関数を宣言する必要がありますか? たとえば、同じ関数の 64 個のインスタンスとなる 8x8 フィールドでは、次のようになります。
data.field(0,0).top = function(){...}
data.field(0,1).top = function(){...}
...
ループ内で簡単に宣言できますが、それは純粋にメモリの無駄であり、それを行う方法ではないと確信しています。この関数を一度だけ宣言して、field(x,y) 関数によって返されるすべてのオブジェクト内で使用できるようにすることはできますか?