Adobe AIR / プロパティーを取得するときの鉄則

値を要求する前にそのメンバ変数が本当に存在することをhasOwnPropertyで確認せよ。


まぁ、どんな言語/環境でも当たり前なんだが。AIRみたいなものだと「作り付けのオブジェクト」が多いので特に気をつけていないといけない…


この間はクリックイベント処理で「event.target*1のオブジェクトにidはあるはず」と思ってコードを書いていたら、実はクリックする場所の微妙な塩梅で予定外のオブジェクトが反応を返してきて、仮想マシンデバッグでエラーが見つかった事があった。デバッグではなくテスト実行だとエラーが抑制されるので「なぜかクリックに反応しない」という事態が発生していた。

あるいは、「イベントに反応するオブジェクトは極力少なくせよ」ということも言えるかもしれないが。

*1:クリックイベントの対象になったオブジェクト。正確にはeventはクリックイベントの引数として与えられる変数名に過ぎないので可変。でも、自動生成されるので変更したことがない(笑)