自作コンパイラの部屋 > オブジェクト指向プログラム言語としてのJavaScript

 このページでは、JavaScriptのオブジェクト指向言語としての側面を研究します。
 JavaScriptは、HTMLの拡張という側面が注目されていますが、 プログラム言語として見た場合にも、興味深い独自の特徴がたくさんあります。 このページでは、これらJavaScriptの言語としての特性、 特にオブジェクト指向言語としてJavaScript を見た場合の特徴について詳しく研究を試みます。


● 結論

 JavaScriptは、ほぼ完全なオブジェクト指向言語です。プログラマによるクラス定義、プロパティ定義、メソッド定義ができます。継承は、言語の基本機能としては用意されていませんが、基本機能の組み合わせにより実現できます。
 メソッドのバインディング(binding)はレイトバインディング(late binding)です。これは、JavaScriptが変数の型のない言語だからです。
 JavaScriptにない機能としては、プロパティ(インスタンス変数)の隠蔽機能がないことです。これについては、変数のネーミングルールなどの運用でカバーするしかありません。

 結論として、JavaScriptは本格的なオブジェクト指向言語が備えているべき機能のほとんどを含んでいます。つまり、JavaScriptは立派なオブジェクト指向言語であるといえます。


● 詳細(目次)
  1. JavaScriptのオブジェクト
  2. オブジェクトの作成
  3. JavaScriptの連想配列
  4. JavaScriptの配列
  5. インデックスの範囲
  6. 配列の実装
  7. 小数を添え字とする配列
  8. オブジェクトのプロパティ
  9. プロパティの実装
  10. for/inの使い方
  11. 関数もオブジェクトだ
  12. 関数ポインタ
  13. コンストラクタ
  14. コンストラクタとメソッド
  15. prototypeプロパティ
  16. prototypeによるメソッド定義
  17. 継承の考え方
  18. メソッドの継承
  19. メソッドの自動継承(1)
  20. メソッドの自動継承(2)
  21. try...catchによる例外処理

● 番外(おまけ)
  1. ループやswitch以外のブロックを脱出するbreak
ホームページに戻る
Last update: '2007年09月17日