JavaScriptのカプセル化

JavaScriptのカプセル化について

日頃はWebサイトの制作というバイトなんぞをしているわけではありますが、いい加減スパゲティコードから卒業しなければなあと思い立ち、カプセル化について勉強するわけでありました。

カプセル化のメリットとしては、外部からアクセスできなくなる(隠蔽)というのが一番あると思うんですよね。うんうん。
ここでいう『外部』というのは悪意を持ったアクセスというわけではなくて、例えば他の関数で変数の値の上書きができないようにするというニュアンスですな。

大体発見し辛いバグというと、知らずのうちに変数の値が書き変わっていて、というものでして。
それを未然に防ぐ、という意味合いでも、不用意に外からアクセスできないように隠蔽化しておくのが吉というわけですな。

全部Public

JavaScriptの特長として、変数や関数は基本的に全部Publicです。つまりどこからでもアクセスができてしまいます。
JavaScriptを始めた当初は「なんて便利だ」と思った機能ですが…

で試行錯誤の結果以下のような書き方が「とりあえず」は良さそう。

所感

privateもどきの機能を達成することはできましたが、いくつかの難点もあるようで
・いちいち「private」と打つのがめんd(ry
・メモリ消費が激しい?(prototype使わないから?よう分からん)(そんなに大量にオブジェクトを生成するわけでもないので無視してます汗)
まあこの辺が「とりあえず」という謂れですかなあ
参考サイト[2]には『privateは諦めましょう』なんて言われていますしなあ

参考サイト

[1] JavaScriptとprivateの見果てぬ夢 (JavaScript Advent Calendar 2011 オレ標準コース 6日目) – 泥のように
http://blog.tojiru.net/article/238901975.html

[2] newを封印して、JavaScriptでオブジェクト指向する(1) – 泥のように
http://blog.tojiru.net/article/199670885.html

[3] Javascriptでカプセル化を実現する! – 日本野望の会
http://yabooo.org/archives/53