在哪里添加String原型

时间:2012-06-27 17:26:19

标签: javascript titanium prototype

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

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

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

提前致谢。

3 个答案:

答案 0 :(得分:11)

好的,我找到了最好的答案(由IvanŠkugor提供),我想把它放在这里与谁有同样的问题分享。谢谢你的帮助。

“扩展原生原型通常不是一个好主意。在这种特殊情况下,在其他一些环境中这不应该是一个大问题,但是使用CommonJs,这是一个问题,因为每个CommonJs模块都是新的JS上下文,这意味着,清理JS环境。所以,你用环境做的任何事情(比如扩展原生原型)都不会反映在其他模块上。 因此,最好的方法是使用辅助函数编写“utils”模块,并在需要的地方“需要”它。“

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

- IvanŠkugor

答案 1 :(得分:5)

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

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

答案 2 :(得分:4)

确保在任何代码尝试使用它之前定义它,并且你将被设置!