今回はCommonに定義されている getFormatDateメソッドを利用しましたが。残りの2つのメソッドも同様の呼び出し方で利用できます。オブジェクト指向言語に慣れている人なら、new Common().xxxx じゃないのか???などと疑問を抱くかもしれませんが、ここは new しないところがポイントです。
var Common = functon(){
return globals;
}
で、戻り値のglobalsがJavaScriptの連想配列であり、ここに定義されているメソッド(function)がつめ込まれている形になります。ちょっと難しかったですかね?この方法を利用すると Common という変数自体はグローバルになってしまいますが、それ以外は隠蔽した形で利用できますので、何かと便利です。
こちらがJavaScript 汎用コンポーネント
[js mark=”1,3,11,25,51,65,66″]
var Common = function(){
function convertNum(num, keta) {
var str = String(num);
while (str.length < keta) {
str = "0" + str;
}
return str;
}
function getDate(dateStr){
if (dateStr.length != 10){
return null;
}
var y = dateStr.substr(0,4);
var m = dateStr.substr(5,2);
var d = dateStr.substr(8,2);
var dt = new Date(y,m -1 ,d);
return dt;
}
function getFormatDate(rcvDate, rcvFormat){
var year = rcvDate.getFullYear();
var month = rcvDate.getMonth() + 1;
var day = rcvDate.getDate();
if ( month < 10 ) {
month = '0' + month;
}
if ( day < 10 ) {
day = '0' + day;
}
var str = '';
if (typeof rcvFormat === 'undefined'){
str = year + '/' + month + '/' + day;
}
else if (rcvFormat == 'mm/dd'){
str = month + '/' + day;
}
return str;
}
var globals = {
convertNum: function(num, keta){
return convertNum(num, keta);
},
getDate : function(dateStr){
return getDate(dateStr);
},
getFormatDate : function(rcvDate, rcvFormat){
return getFormatDate(rcvDate, rcvFormat);
}
}
return globals;
}(); //即時実行とする
[/js]
Leave a comment