フロントエンドエンジニア芸人もりたけんじのJavaScript【JavaScript】JavaScript中級者の為の練習問題集261問(脱初心者へ)2016/09/10更新

【JavaScript】コンストラクタを作成するモジュール

【JavaScript】コンストラクタを作成するモジュール

[code language="javascript"]
//namespace関数の実装
var MYMO = {};
MYMO.namespace = function(s){
var parent = MYMO;
var parts = s.split('.');
if(parts[0] === "MYMO"){
parts = parts.slice(0);
}
for (var i = 0; i < parts.length; i++){
if(typeof parent[parts[i]] === "undefined"){
parent[parts[i]] = {}
}
parent = parent[parts[i]];
}
return parent;
}

//モジュール作成
MYMO.namespace('utilities.Array');
MYMO.utilities.Array = (function(app, global){
//@param : app,global
//グローバルオブジェクトへの参照とグローバル空間オブジェクトへの参照がローカルになる

//依存関係の取り込み
var uobj = MYMO.utilities.object,
ulang = MYMO.utilities.lang,
Constr;
//var の終わり
//一回きりの初期化手続き
//...

//パブリックAPI--コンストラクタ
Constr = function(o){
this.elements = this.toArray(o);
};
Constr.prototype = {
constructor: MYMO.utilities.Array,
version: "2.9",
toArray : function(obj){
for (var i = 0, a = [], len = obj.length; i < len; i +=1){
a[i] = obj[i];
}
return a;
}
}
return Constr;
}(MYMO, this))
var arr = new MYMO.utilities.Array(obj)
arr
//Constr {elements: Array[0]}
arr.toArray(["a"])
//["a"]
[/code]

参照 JavaScriptパターン Oreilly