我目前正在使用Titanium Studio中的JavaScript(CommonJS),并对原型设置有疑问。 假设我想向现有类添加新函数。例如:
String.prototype.trim = function() {
return this.replace(/^\s+|\s+$/g,"");
}
我应该添加此代码的最合适位置是什么?它立即可用于所有类?
提前致谢。
答案 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)
确保在任何代码尝试使用它之前定义它,并且你将被设置!