资讯专栏INFORMATION COLUMN

为什么log事件对象的时候currentTarget是null?

Ververica / 2771人阅读

摘要:没有包含对象的所有属性,它只包含了对这个对象的引用。所以当你展开事件对象,看到的就是。这个情况需要一个属性超多的对象,当它被的时候,它展示头几个属性是当时的快照,后面的属性才会出现这个异常。

This is an artifact of the way the Javascript console works when you log an object. The log doesn"t contain a copy of all the object properties, it just contains a reference to the object. When you click on the disclosure triangle, it then looks up all the properties and displays them.
这是JavaScript console 在log一个对象的机制造成的。log 没有包含对象的所有属性,它只包含了对这个对象的引用。当你点击展开时,他才会给你找那个对象的属性。

In this case, at the time you call console.log(e), there"s a DOM element in the currentTarget property. But sometime later, that property is reset to null for some reason. When you expand the event object, that"s what you see.
你的情况是,当调用console.log(e)时,currentTarget属性是有值的,但是过后这个值就被重置为null了。所以当你展开事件对象,看到的就是null

A simple example that demonstrates this is:
这里有一个例子:

var foo = { };
for (var i = 0; i < 100; i++) {
    foo["longprefix" + i] = i;
}
console.log(foo);
foo.longprefix90 = "abc";

When you view the object in the console, you"ll see that foo.longprefix90 contains "abc", even though it contained 90 at the time that console.log(foo) was called.
虽然在调用console.log(foo)的时候foo.longprefix90应该是90,但是当你在console里浏览object的时候你会看到foo.longprefix90abc

The demonstration needs to use an object with lots of properties. When it"s logging, it shows the first few properties that fit in the console, so those are in the early snapshot. Only properties after that display this anomalous behavior.
这个情况需要一个属性超多的对象,当它被log的时候,它展示头几个属性是当时的快照,后面的属性才会出现这个异常。

来源: https://stackoverflow.com/que...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/87341.html

相关文章

  • 重探浏览器事件(浅析事件编程化)

    前言 在平常开发过程中,就算不使用现在主流的框架也至少得使用个Jquery,这些工具帮我们统一不同浏览器平台之间的差异和细节,可以将注意力集中到开发上来. 不过有意思的一点是,在看完高程的N年后我居然连event对象中的target和currentTarget属性的区别都忘记了. 先提几个引子: 你能说出event.currentTarget和event.target的区别吗? 如果可以那么ev...

    lk20150415 评论0 收藏0
  • 重探浏览器事件(浅析事件编程化)

    前言 在平常开发过程中,就算不使用现在主流的框架也至少得使用个Jquery,这些工具帮我们统一不同浏览器平台之间的差异和细节,可以将注意力集中到开发上来. 不过有意思的一点是,在看完高程的N年后我居然连event对象中的target和currentTarget属性的区别都忘记了. 先提几个引子: 你能说出event.currentTarget和event.target的区别吗? 如果可以那么ev...

    phodal 评论0 收藏0
  • jQuery源码解析之你并不真事件委托及target和currenttarget区别

    摘要:源码源码行被点击了点击了,即委托的事件被点击了优先添加委托,再添加其他即委托在上的事件数量在下标为的位置插入委托事件解析可以看到,是优先添加委托事件,再添加自身事件,触发事件的时候也是按这个顺序。 showImg(https://segmentfault.com/img/remote/1460000019419722); 前言:请先回顾下我之前写的一篇文章:JavaScript之事件委...

    khs1994 评论0 收藏0

发表评论

0条评论

Ververica

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<