javascript - 如何在下面的 `value: _value(this.from, this.to, line)` 行中获得 DRY?

标签 javascript object dry

函数getRegistry()创建一个具有多个属性的Registry对象,这些属性在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)
    }

关于javascript - 如何在下面的 `value: _value(this.from, this.to, line)` 行中获得 DRY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45426013/

相关文章:

javascript - 什么是用新的 flexbox 替换 box-orient?

javascript - 如何使用 jQuery 构建简单的选项卡?

javascript - DRY - 如何将此 if 语句交换为不太复杂的

python - Django 做一个简单的 group by/count 语句

javascript - 在条件评估为真时获取元素(扩展 ElementArrayFinder)

javascript - 如何记录具有多个别名的方法?

android - Android 设备上的大型应用程序数据存储在哪里?

PHP:如何遍历动态数量的类

c++ - 二维对象数组 C++

jsf - 在组合之外重用变量 - 在 jsf 中传递变量?