在哪里添加字符串原型

Where to add String prototype

本文关键字:原型 字符串 添加 在哪里      更新时间:2023-09-26

我目前正在Titanium Studio中使用JavaScript(CommonJS),并且对原型设计有疑问。假设我想向现有类添加一个新函数。例如:

String.prototype.trim = function() {
    return this.replace(/^'s+|'s+$/g,"");
}

我应该添加此代码以便立即适用于所有类的最合适位置是什么?

提前谢谢。

好的,我找到了最好的答案(由Ivan Škugor撰写),我想把它放在这里与有相同问题的人分享。感谢您的帮助。

"一般来说,扩展原生原型并不是一个好主意。在这种特殊情况下,这在其他环境中应该不是什么大问题,但是通过使用CommonJs,这是一个问题,因为每个CommonJs模块都是新的JS上下文,这意味着干净的JS环境。因此,您在环境中所做的任何操作(例如扩展本机原型)都不会反映在其他模块上。正因为如此,最好的方法是编写带有辅助函数的"utils"模块,并在任何需要它的地方"需要"它。

//utils.js
exports.trim = function(str) {
    return str.replace(/^'s+|'s+$/g,"");
};

— 伊万·斯库戈尔

只要确保在任何代码尝试使用它之前定义它,你就会被设置!

您的示例很好用,因为大多数浏览器都有自己的 trim 方法,因此最好在添加自己的浏览器之前测试本机:

String.prototype.trim= String.prototype.trim || function(){
    return this.replace(/^'s+/, '').replace(/'s+$/, '');
}