javascriptによるオブジェクト指向プログラミング
javascriptもオブジェクト指向言語だということを秋ごろに聞き、さらにプロトタイプなオブジェクト指向だと言われたが当時は何のことだかさっぱりわからなかった。
しかし10日ほど前にある講義にて「デザインパターンを複数選択しJavascriptで実装しろ」という課題がでたので、javascriptを少し勉強したらなんとなく理解することができた。
javaではまず設計図となるクラスを作り、その中にフィールドやメソッドをあらかじめ作っておいて利用するのに対し、javascriptではいきなり製品となるオブジェクトを作り、その後フィールドやメソッドを追加していく感じ。詳しい解説なんかは俺のブックマークを見ていただければ参考にしたサイトがあるので見てください。
しかし今回の課題はjavascriptの習得ではなく、デザインパターンを使ったプログラムの作成なので、早急にデザインパターンをjavascriptで書かなくてはならない。いろいろ検索したところ以下のサイトを参考にすることにした。
http://ishikawa.arielworks.com/memo/2005/02/23/053637
まずはIteratorパターンだということでソースをすべてコピペしてみたが、なぜかエラーがでてしまう。エラーでぐぐって見ても原因不明。そこで参考にするために友人のjavascriptのソースを見てみると、ある違いがあった。
上のサイトでは
function BookShelf.prototype.getIterator() { return new BookShelfIterator(this); }
となっていたが、オブジェクトにメソッドを追加するのは
BookShelf.prototype.getIterator = function() { return new BookShelfIterator(this); }
とする模様。これで本当に正しいのかは知らないが、とりあえず動いたので良しとする。
javascriptは今まで触ったことは無かったが、俺はjavaを習得した(つもり)ので理解することも簡単だったが、プログラミングから長らく離れているこの講義を受講している友人たちはちゃんと理解することができるだろうか。来週勉強会を行う予定だが、今から先行き不安である。