我已经有了像棋盘一样的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