我已經有了像棋盤一樣的2d數組對象。JS - 數組中的每個對象都具有相同的功能
您可以通過data.field(x,y);
獲取對象(對象存儲對象的二維數組內)
我希望每個字段有功能:top
,bottom
,left
,right
將返回鄰居場。
例如data.field(3,3).top().left().bottom().name
將返回字段的名稱(4,3)。
但是:我要爲每個對象聲明這些函數嗎?我的意思是,例如在8×8場,這將是同樣功能的64個實例:
data.field(0,0).top = function(){...}
data.field(0,1).top = function(){...}
...
OFC我可以很容易地聲明它們內部循環,但內存和它純粹是浪費我敢肯定它不是辦法做到這一點。是否可以聲明這個函數只有一次在field(x,y)函數返回的每個對象內都可用?
@ alex23:什麼不是關於將行爲附加到對象的OOP? – 2013-03-04 17:27:27
我是否還需要爲每個領域做? data.field(0,0).top = top;數據(0,1).top = top等? – OPOPO 2013-03-04 17:27:42
@OPOPO:你這樣做,讓我發表一個選擇。但請注意,雖然您正在完成這項任務,但您不會重複該功能,而只是重複使用它。 – 2013-03-04 17:28:01