【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として表示されるという、一見矛盾した結果となるので注意が必要。

参考サイト

コメント