猿问

当控制台输出与js文件输出不一致时,该怎么办?

代码:

const target = document.getElementById('target');let e;
target.addEventListener('click', function (event) {
    e = event;    console.log(e);    console.log(e.currentTarget);
});

控制台输出:

MouseEvent {isTrusted: true, screenX: 149, screenY: 253, clientX: 149, clientY: 131, …}<div id="target"></div>

然而,在控制台输入:

console.log(e);console.log(e.currentTarget);

得到的结果却是:

VM1656:1 MouseEvent {isTrusted: true, screenX: 149, screenY: 253, clientX: 149, clientY: 131, …}VM1656:2 null

显然,event对象是相同的,但是为什么控制台输出currentTargetnull

从控制台查看event对象中的currentTarget,其值是null,那为什么js文件中输出的currentTarget不是null


哆啦的时光机
浏览 783回答 1
1回答

跃然一笑

你在控制台只输入了后面两句,这个明显主体都不对了,前面那个event是执行过程中捕获到的,后面的就不是一个东西啊。简单说就是上下文环境都不一样了。
随时随地看视频慕课网APP
我要回答