我更换(替换,改进,增加功能)在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命名空间的方式?

什么我问的是的此相同的问题时,仅在Javascript。

有帮助吗?

解决方案

您可以像下面这样做: -

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

其他提示

虽然上述方案是更优雅的是,它不污染Date.prototype的方式,则对“新”的toString因为关闭它涉及将放缓。

据速度方面,你会离开你在你的问题中提到的方式更好。尝试循环调用代码20000次,然后尝试提交安东尼的代码。

根据你的代码是如何经常被称为,你会想要去的一种方式或其他。

干杯!

更新:你可以看到这个小 样本/ p>

scroll top