【问题标题】:What is the best way to monkey patch the RegExp?猴子修补正则表达式的最佳方法是什么?
【发布时间】:2018-01-18 23:14:48
【问题描述】:

猴子补丁或扩展 RegExp 原型或其他原生对象的最佳方法(性能)是什么。

我想添加1个方法,例如捕获:

Object.assign(RegExp.prototype, {
  capture() {
    // code
  }
})

对

RegExp.prototype.capture = () => {}

有没有设计模式可以做到这一点?

请不要评论说这是一件坏事,可能会导致一些问题。我只是好奇。

【问题讨论】:

  • 问题中的代码有什么问题?
  • 我只是好奇最好的方法。
  • 没有“最好”的方法
  • 总有最好的办法。
  • 那么对于问题中的两种代码方法中的哪一种是实现需求的“最佳方法”,您的决定是什么?为什么?

标签: javascript node.js monkeypatching


【解决方案1】:

这两种情况大多相似,在 RegExp 的原型中创建一个新方法。由于它是一次性操作,因此它们之间没有明显的性能差异。

Object.assign(...) 正在使用新的 ES6,并且可以向原型添加多个方法。 RegExp.prototype.method = ... 是纯 JavaScript 模式。

编辑: 这取决于您最喜欢的语法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-15
    • 1970-01-01
    • 2021-03-10
    • 2013-10-23
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 2016-11-27
    相关资源
    最近更新 更多