如何在Java脚本中重写本机构造函数

2022-07-12 00:00:00 object native overriding javascript

我想更改RegExp构造函数,使其不区分大小写,但我无法修改源代码。

源调用:

MyExp = new RegExp("xxx","") //Native

我是否可以创建可以覆盖它的函数,例如

function RegExp(a,b){
  return native.RegExp(a,"i")
}

解决方案

这称为monkey patching。将本机函数的旧值保存在另一个变量中。

(function(nativeRegExp) {
    window.RegExp = function(a, b) {
        return nativeRegExp(a, b || "i"); // default to case-insensitive
    }
})(RegExp);

相关文章