请教老师一个关于处理程序的问题
我任意选取了一个DOM节点,测试后发现本质上就是 往上5层的原型链__proto__,找到EventTarget对象,这个对象包含了三个关于事件的方法, 还有个神奇的dispatchEvent.老师提都没提,稍微查了下应该也用不到,就没在意了.我想问的就在于 既然是这样, 那么为什么IE8及以下没有呢? 这应该顺着JS的原型链都能找得到啊. 那就是他们用的不是同一份JS源码(版本不同)是这个原因吗?
正在回答 回答被采纳积分+1
==,最终还是忍不住去稍微看了下,要不卡着脑子一块好难受
这次的提问和上次的一样,一边提问一边阐述自己的想法,慢慢的就找到答案了. 但是贴出来也希望哪个同学老师看到了可以给些意见,探讨探讨..下面是我最终发现的答案
....引用别人的一幅图

但是这幅图有个缺陷,就是他没说出这些类在作为对象时__proto__的指向, 经过我测试,发现这些类作为对象时的__proto__指向均为上一个类!!!!!!!这与其他可大不相同了, 也就是这块让我之前困惑了一下. 本来类作为对象时的__proto__指向应该是原型对象的.!!! 我想这也就是DOM的与众不同之处了. 它的原型链被人为修改了!!!. 那这个奇怪的原型链 什么时候跳出呢? 答案就是在最后一个EventTarget对象的__proto__就会指向Function.prototype了.
值得引起注意的是, 在chrom测试下, 不让我们修改的源码 console.log都会打出native code. 举例来说, 不论是Function类本身还是Function.prototype.均为native code. 借此可见, DOM原型链中之所以把这个类作为对象时的__proto__给修改了, 应该也是不让我们操作修改里面的属性,毕竟我们如果去console.log就会发现, 这些类 均为 native code.
- 参与学习 人
- 提交作业 467 份
- 解答问题 4826 个
本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星