コードをリファクタリング中です。私が持っているいくつかのユーティリティ関数を正確に実装する方法を決めるのに苦労しています。 具体的には、特定の関数が私の個人的な名前空間で使用したり、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 オブジェクトに正当に挿入されるのはいつですか?
- ユーティリティが自分の名前空間にある方がよい場合はどうすればわかりますか?