2011年02月28日のつぶやき
[22:21]

はぅあ、今日で2月も終わり、早いなあ。



第5章「オブジェクト作成のパターン」を読んでおります。

汎用の名前空間作成関数は面白いですね。

var MYAPP = MYAPP || {};

MYAPP.namespace = function(ns_string) {
var parts = ns_string.split("."),
parent = MYAPP,
i;

if (parts[0] === "MYAPP") {
parts = parts.slice(1);
}

for (i = 0; i < parts.length; i++) {
// プロパティが存在しなければ作成
if (typeof parent[parts[i]] === "undefined") {
parent[parts[i]] = {};
}
parent = parent[parts[i]];
}
return parent;
};

// 使用例
var module = MYAPP.namespace("jp.exblog.redchant");
console.log(module === MYAPP.jp.exblog.redchant); // true


プラグインやら作るときに重宝しそう(作れればいいんだけど。。。)


プライベートなプロパティを実現するためにクロージャを使います。

function MyFunc(name) {
this.getName = function() {
return name;
};
}
var myFunc = new MyFunc("redchant");
console.log(myFunc.getName()); // redchant


「クロージャは便利」とよく言われますが、あまり使ったことありません。。。
この本には普通にクロージャが出てきます。
僕も便利に使いこなせるといいな。

では、おやすみ。
[PR]
by redchant | 2011-02-28 22:39 | 日記
<< 2011年03月01日のつぶや... 2011年02月25日のつぶや... >>