誰が言い出したのか、まことしやかに流布される謎の解釈。
今回のIT都市伝説はこれだ!
クラスも無く継承もできないJavaScript §
JavaScript(JScript, ECMAScript)は(バージョンにもよりますが)クラスも無く継承もできません。
一応、オブジェクトを扱うことができるプログラム言語ではあるものの、クラスも定義できないようなプログラム言語を、立派な一人前のオブジェクト指向プログラム言語として認めることはできない、というような話をしばしば聞きます。
JavaScriptはプロトタイプベースのオブジェクト指向言語 §
最近、エクストリームプログラミングのメーリングリストで目から鱗が落ちるような話を見ました。
Subject: [XP-jp:04952] Re: 【長文すんません】 JavaScript でテスト駆動開発 奮戦記
ちょっと興味深いのでメモっておこうと思ったら、丁度都合良くIT都市伝説というキーワードをオータムマガジンに作ったばかりなので、ここに書き込んでおきましょう。
上記のメーリングリストのアーカイブから参照されるページを見ると、以下のようなことが言えるようです。
- オブジェクト指向には、クラスベースではなくプロトタイプベースという異なる実現方法がある
- JavaScriptはプロトタイプベースを選択している
- JavaScriptでも継承を行うことができる
つまり、JavaScriptはプロトタイプベースの立派なオブジェクト指向プログラム言語であり、継承もできる、ということのようです。
参考情報 §
上記アーカイブで紹介されているURLを以下にまとめて再掲しておきます。
余談 §
個人的には、クラスベースだけがオブジェクト指向ではない!という主張には、とても好感を感じました。やはり常識を常識だと受け止めて思考停止することは、面白みに欠けます。