Javascriptとオブジェクト指向
YUIの方は、そろそろXMLHttpRequestをやろうかと思うが、ながいことJavaEEをやっているので、Javascriptのコードはやっぱり戸惑うことが多い、と実感。
そもそも、Java2以降、サーバーサイドに多くの開発者が流れて、Javascriptは長いこと「やっかいもの」扱いで、HTMLの補完程度に考えられてきたのだから、今更もてはやすのも都合がいいことなのかもしれない。自分もまったく同様。
サーバーサイドの多くのスクリプト言語が、オブジェクト指向言語で、PHPですらtry-catchなんてことをするようになってしまった。
Javascriptの文脈の中でも、オブジェクトやインスタンスという言葉が多く出てきて、Javascriptライブラリーの機能とあいまって、シンタックス的にも、Javaなんかに「なんとなく似た雰囲気」に見えたりする。
が、(そもそも実行主体の「動けばいいじゃん」的言語なので)コンストラクタ概念が曖昧だったり、プロパティーをインスタンス毎に設定できたり、変数に関数をそのものをつっこんじゃったり(Aliasとしては使いやすい)。いろいろ戸惑ってしまう。
Javaでいうところの、オブジェクト=>インスタンスという考え方ではなくて、JavaScriptを書くという行為は、インスタンスを書くという行為と捉えた方が間違いない(スコープもページスコープしかないのだから。これが、実行主体ということ)。
JavaScriptを「完全なオブジェクト指向言語」と断言しているサイトもあったり、いろいろなサイトを見て回るのは興味深い。(こういう議論自体には、興味はないが)
以下のサイトはとても興味深いので、リンクを貼っておくことにする。
- @IT;連載:Ajax時代のJavaScriptプログラミング再入門;YUIサンプルでも頻出している、オブジェクト・リテラルの説明がある。
- オブジェクト指向プログラム言語としてのJavaScript;JavaScriptの言語特性から、演繹的に「JavaScriptは完全なオブジェクト指向言語」と断言している。
- JavaScriptist;Ajax関連の話あり。
- Ajaxian;これはとても有名なサイト。
- JavaScript++かも日記;たくさん本を出してられる、高橋登史朗さんのページ。「入門Ajax(ソフトバンククリエイティブ)」は、個人的に思い入れのある本。かつて、この本(旧版)のサンプルの件で連絡したら、とても親切に対応していただいて感激。