如何在下面的"值:_value(this.from,this.to,line)"行上获得DRY?



该函数getRegistry()创建一个具有多个属性的注册表对象,这些属性在JavaScript中共享相同的结构:

'use strict'
function getRegistry(line) {
return {
systemId: {
from: 1, to: 3,
name: 'system_id',
value: _value(this.from, this.to, line)
},
originUnity: {
from: 4, to: 7,
name: 'origin_unity',
value: _value(this.from, this.to, line)
},
// ... similar property definition as above
}
}
function _value (from, to, line) {
return line.substring(from - 1, to)
}
module.exports = getRegistry

如何更改行中的属性定义value: _value(this.from, this.to, line)以删除代码重复项?

代码对我来说看起来并不草率...但如果你真的想尽可能提高代码效率,这是我看到的唯一改进:

function getRegistry(line) {
return {
systemId: {
from: 1, to: 3,
name: 'system_id',
value: _value(this, line)
},
originUnity: {
from: 4, to: 7,
name: 'origin_unity',
value: _value(this, line)
},
// ... similar property definition as above
}
}
function _value (obj, line) {
return line.substring(obj.from - 1, obj.to)
}

相关内容

最新更新