JavaScriptでデザインパターンの代わり
よくJavaScriptでデザインパターンとか書いてある記事を見かけるけど、無駄に複雑になるだけで必要ないと思う。
オブジェクトの一部の関数を入れ替えたければ普通に上書きすればいいんだし。
TemplateMethodパターンの場合
MyClass.prototype.myfunc = function(){ this.preMyfunc(); .... .... .... this.postMyfunc(); .... } MyClass.prototype.preMyfunc = function(){ .... } MyClass.prototype.postMyfunc = function(){ .... }
window.onload = function(){ // このスクリプトを読み込むページのみ処理を変えたい場合はプロトタイプを上書き MyClass.prototype.preMyfunc = function(){ .... } var myClass = new MyClass(); .... }
こんな感じで処理を変えたくなった時点でpreMyfunc等を切り出して上書きすればいいんじゃなかろうか。
書き換えは一度まで(上のように共通の処理を行う定義があって、呼び出し用のファイルから上書きする)などを決めておかないと大変なことになるだろうけど。
これとは関係ないが、別ファイルのオブジェクトを利用しようとするとたまに定義されてないというエラーが出る。
書き方が悪いんだろうか。onloadの前に初期化処理が実行されるようなコードを書いていたのかも。