代码之家  ›  专栏  ›  技术社区  ›  Esteban Küber

如何在不丢失原始方法的情况下替换方法?

  •  2
  • Esteban Küber  · 技术社区  · 16 年前

    我正在替换(覆盖、改进、添加功能) Date

    Date.prototype._toString = Date.prototype.toString;
    
    Date.prototype.toString = function(mask) {
        if(mask == undefined){return this._toString();}
        //snip
        //...
        //snip
        return date_string;
    }
    

    Date.prototype 命名空间?

    this same question

    2 回复  |  直到 9 年前
        1
  •  7
  •   AnthonyWJones    16 年前

    (function() {
        var _toString = Date.prototype.toString;
        Date.prototype.toString = function(mask) {
           if (mask == undefined) { return _toString.call(this); }
        //snip
        }
     })();
    
        2
  •  1
  •   Oli    16 年前

    就速度而言,你在问题中提到的方式会更好。尝试一个循环,调用你的代码20000次,然后尝试Anthony提交的代码。

    根据代码被调用的频率,您会希望采取这样或那样的方式。

    干杯

    sample from Google

    推荐文章