gpt4 book ai didi

javascript - 我怎样才能 'namespace'我的原型(prototype)

转载 作者:行者123 更新时间:2023-12-02 20:24:41 25 4
gpt4 key购买 nike

我打算为我的有用方法库命名,但我的库还包含许多原型(prototype)。例如,

// Utility Functions    - Trim() removes trailing, leading, and extra spaces between words
String.prototype.Trim = function () { var s = this.replace(/^\s+/,"").replace(/\s+$/,""); return s.replace(/\s+/g," "); };
// Escapes characters for use with a regular expression
String.prototype.EscapeR = function () { return this.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); };
Date.prototype.getMonthName = function() {
if ( !this.mthName ) this.mthName = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
return this.mthName[this.getMonth()];
};

我如何(或者应该)将它们包含在我的命名空间中?

(请注意,我没有使用 JQuery。)感谢您提前提供任何提示。安迪。

最佳答案

最简单的解决方案是仅使用自定义命名空间前缀。但是,您可以使用 Mozilla 的非标准 __noSuchMethod__ 做一些偷偷摸摸的事情:使用 monkey.js ,你可以这样做

var names = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug',
'Sep', 'Oct', 'Nov', 'Dec' ];

MONKEY.patch(Date).getMonthName = function() {
return names[this.getMonth()];
};

var date = MONKEY(new Date);
alert(date.getMonthName());

一次即可完成符合标准的版本ECMAScript-Harmony proxies已落地...

关于javascript - 我怎样才能 'namespace'我的原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5022852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com