【JavaScript】console.log(e)でcurrentTargetがNULLになる?
概要
JavaScriptのイベントハンドラにて、console.log(e);
とするとイベントオブジェクトの中身が表示されるが、それはconsole.log(e)
を実行した時の中身ではなく、コンソールで確認した時点(▶︎をクリックしてオブジェクトを展開したとき)の中身が表示される。
currentTargetは処理が終わるとNULLに書き換わってしまうので、console.log(e);
を実行したときに値が存在していたとしても、コンソールで確認するとNULLと表示されてしまう。
※これは開発者ツールの仕様らしい。
サンプル
console.log(e.currentTarget);
console.log(e);
とすると、e.currentTargetの方では値が表示されるのに、eの方ではcurrentTargetがNULLとして表示されるという、一見矛盾した結果となるので注意が必要。
参考サイト
- https://stackoverflow.com/questions/26496176/console-log-event-object-shows-different-object-properties-than-it-should-have
- http://var.blog.jp/archives/68878734.html