数年前から、Ajaxなどが出てきてJavaScriptをいじる機会が増えてきた。
昔はVBAライクな記述しかしなかったのに、今じゃクラス化しバンバンのオブジェクト思考なScriptが
ちまたに溢れ、拝借して活用させてもらっている。
しかし、この言語は本当に追っかけるのが大変!(苦笑)
C#やJava、C++などはプロパティやメソッドは決まった法則で宣言してから
使用可能になるが、JavaScriptといったら好き勝手に動的に?プロパティやメソッドを追加できるし
prototypeとかいって拡張を促すメソッド(便利なのだが)が初めから存在し
時として永久的に再帰的な動きを繰り返す・・・
(余談、普通は使用しないがC#などもシリアル化した情報からクラスを動的に拡張することも出来る)
(XML通信で、SOAPなどがシリアル化、逆シリアル化の考えで動いている)
また、既存のクラスもこやつのおかげで勝手に拡張されて、知らない間に継承(拡張)されていたりする。
「String.prototype.hoge = function{};」などとして
せめて「partial」するぞ!ってぐらいちゃんと書いてよ(笑)
特に記述方法が宣言もくそもなく、記述した次の瞬間からそのプロパティやメソッドは使えてしまう・・・
もちろん変数に型など指定することはない・・・しまいには文字列すらeval()などでシリアル化から
メソッドなど生成するしまつ・・・
また、確実に「これだ」っていうデバッグ方法が無く最終的にはEdit君とニラメッコしアラートやログ吐きで
匍匐前進するしかないのが、さらに難易度を加速させている。
こやつを使いこなせればオブジェクト思考はマスターか(笑)
でもC++はクラスの多重継承が出来るので、こやつの方が頭痛いかも(苦笑)
基本的にクラスの多重継承は使ってはいけません!!
あ~