[JavaScript] Prototype調べ

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

javascriptのプログラムを組む時に単純にfunctionで関数を書いていると、「無名関数」を使わないといけないことに気がつく。
これは、JavascriptがHTMLソースの基本的なスクリプトライブラリとして汎用性をもたせようとすると、他のプログラムとコンフリクトしないようにするために、できるだけ変数や関数名がバッディングしないようにする必要があるため、いっそのこと空間名称を使わない無名関数が望ましいという事ですね。

無名関数について

一般の関数

無名関数

少しややこしいように見えますが、空間名称を使わないので、コンフリクトが発生しません。
でも、このままだとせっかく関数なのに、再利用することができないので、プログラムとしては、ダメですね。

コンフリクトしにくい空間名称

全ての関数を一箇所にまとめてしまうことで、他の空間名称や関数、変数とぶつからないようにします。

ちなみに、javascriptはリテラルに使用できる文字列が比較的多く、数値からスタートできないが、記号から開始してもいいという他の言語にはないルールがあり、空間名を「$nameSpace」などとすると、よりぶつかることは少なくなると思います。
余談ですが、僕の知り合いでは「$$$nameSpace」などという風に、記号を沢山いれてしまえ作戦で対応しているエンジニアもいましたwww

prototype調査

JSON形式の階層構造でライブラリのように構築してもいいんですが、この方式では、空間名称はただの添字扱いになってしまうのですが、この空間名称自体も関数化することもできます。
そのためにprototypeとclass化を覚えましょう。

オブジェクト構造に慣れていない人には構造が難しく思えるかもしれませんが、慣れるととても楽になります。
JSONライブラリと効率よく組み合わせることで、かなり便利なライブラリ構築ができるようになるので、オススメです。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です