【发布时间】:2013-06-01 04:06:59
【问题描述】:
假设我有一个 JavaScript 对象:
myObject = {
oneArray: [],
otherArray: [],
setOneArray: function(){
/*some code that sets the contents*/
}
setOtherArray: function(){
/*again code that sets contents*/
}
}
现在让我们说,就目前而言,两个“setter”的代码是相同的。我正在重复工作和代码,没有两种方法。我本可以为两者编写一个函数,并在编码(或复制/粘贴)中保存很长时间。在可预见的未来,我没有理由区别对待这些 - 那么这从根本上来说是一种不好的做法吗?
如果上下文很重要,两个数组都被推送相同类型的数据 - 字符串 - 但来自 JSON 文件的不同部分。
【问题讨论】:
-
如何指定要设置的数组?传入变量?我认为这表明它们需要是两个不同的功能。通常,getter/setter 与属性之间存在 1:1 的关系,字段名称与 getter/setter (array/set_array, otherArray/set_otherArray) 名称之间存在某种约定。
-
如果你的 setter 很重要,并且你想避免重复,你应该包装你的数组(或添加到它们的原型中)setter 方法。这会处理隐式传递的实例。
标签: oop setter code-duplication