我正在重构我的代码。我无法决定如何准确地实现我拥有的几个实用功能。 具体来说,如果某些功能在我的个人命名空间中更好,或者直接扩展 js 对象。
扩展原生 JavaScript 对象的示例
(这是正确的术语吗?)。
String.prototype.prettyDate = function(){
return (this.substr(5,2) + '/' + this.substr(8) + '/' + this.substr(0,4));
}
var myString = "2010-12-27";
//logs 12/27/2010
console.log(myString.prettyDate);
使用我自己的命名空间的示例
var myNamespace = (function(){
var my = {};
my.prettyDate = function ( dateStr ){
return (dateStr.substr(5,2) + '/' + dateStr.substr(8) + '/' + dateStr.substr(0,4));
}
return my;
}());
var pretifiedDate = myNamespace.prettyDate('2010-12-27');
//logs 12/27/2010
console.log(pretifiedDate);
需要考虑的问题
- 何时将实用程序合理地插入到原生 JavaScript 对象中?
- 如何判断实用程序何时最好位于我自己的命名空间中?