2009年04月24日

javascript:変数を監視する関数

変数やオブジェクトプロパティの値を監視して変更があった際に callback を起動する関数です。watch の無い ie でも監視します。

但し、その変数やオブジェクトプロパティが配列などの"オブジェクト"を有している場合は、検出しません。クロージャとは言え参照渡しは変わらないためですが、それでもオブジェクトまで監視したい場合は string へパースするように改変の必要があります。
json 関数などの有用な関数は多いので改造は容易だと思います。

ただ、パースまでしていると遅くなる可能性が非常に高いです。なので軽いオブジェクトに限定するか、チェックサムの様なものにする方が良いと思います。

■ 確認環境
ie 6.0, 7.0
ff 3.0

ま、確認環境は少ないですが、環境に依存しやすいものは使ってないのでほとんどの環境で動くでしょう。

■ 同日追記(ローカル変数を監視する場合)
この関数の場合、ローカル変数の監視は出来ませんが、以前書いた。
Javascipt:関数ごとに終了状態をトレースしてゆく関数
を応用すれば可能です。あまり深く考えてませんがw
※ ただし、この場合は対象の関数が終了した後にしか、検出できません。

続きを読む
posted by HiFa at 01:43 | 🌁 | Comment(0) | TrackBack(1) | JavaScript雑感 | このブログの読者になる | 更新情報をチェックする