请教老师一个关于处理程序的问题

请教老师一个关于处理程序的问题

我任意选取了一个DOM节点,测试后发现本质上就是 往上5层的原型链__proto__,找到EventTarget对象,这个对象包含了三个关于事件的方法, 还有个神奇的dispatchEvent.老师提都没提,稍微查了下应该也用不到,就没在意了.我想问的就在于  既然是这样, 那么为什么IE8及以下没有呢? 这应该顺着JS的原型链都能找得到啊.  那就是他们用的不是同一份JS源码(版本不同)是这个原因吗?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
没有马甲线的安琪拉 2018-05-15 10:06:15

收了,赞一个,感谢分享!!

提问者 小学生6年级 2018-05-14 22:33:29

==,最终还是忍不住去稍微看了下,要不卡着脑子一块好难受

这次的提问和上次的一样,一边提问一边阐述自己的想法,慢慢的就找到答案了. 但是贴出来也希望哪个同学老师看到了可以给些意见,探讨探讨..下面是我最终发现的答案

....引用别人的一幅图

http://img1.sycdn.imooc.com//climg/5af99bf90001e21a03490437.jpg

      但是这幅图有个缺陷,就是他没说出这些类在作为对象时__proto__的指向, 经过我测试,发现这些类作为对象时的__proto__指向均为上一个类!!!!!!!这与其他可大不相同了, 也就是这块让我之前困惑了一下. 本来类作为对象时的__proto__指向应该是原型对象的.!!! 我想这也就是DOM的与众不同之处了. 它的原型链被人为修改了!!!. 那这个奇怪的原型链 什么时候跳出呢?  答案就是在最后一个EventTarget对象的__proto__就会指向Function.prototype了.  

     值得引起注意的是, 在chrom测试下,  不让我们修改的源码 console.log都会打出native code.  举例来说, 不论是Function类本身还是Function.prototype.均为native code.  借此可见, DOM原型链中之所以把这个类作为对象时的__proto__给修改了, 应该也是不让我们操作修改里面的属性,毕竟我们如果去console.log就会发现, 这些类 均为 native code.


  • 提问者 小学生6年级 #1
    由此可见,W3C制定DOM规范的那些人,应该还是更看重类,而不是原型对象,你看EventTarget类不让我们修改,但是它的prototype却可以操作. 关于ES6也略有耳闻,好像也是推出了新的class类实现, 我之前也只稍微学过C语言,里面就没有面向对象这一说法, 因此关于类我也不甚了解.就到此为止把.期待之后开始学习新的JS规范所接触的类!
    2018-05-14 22:39:52
  • 提问者 小学生6年级 #2
    此外,忘记说了...这是网上随便找的一篇博客上的文章的一张图,实际上这张图最下面是有问题的....但是...,算了就这样吧.....
    2018-05-14 22:54:11
提问者 小学生6年级 2018-05-14 21:50:11

然后我又尝试着做了一些测试,居然发现神奇的一个原型 居然同时具有constructor  prototype __proto_-三个属性 ,都不是undefined???????  然后去搜了下,发现里面大有文章...  想了想暂时先放弃,现阶段我应该还没到研究这个的地步,还是先接着路径学习吧.....

提问者 小学生6年级 2018-05-14 20:06:27

这样说来。所谓的w3c规范。说穿了不过是一些人定义的一个较长的原型链,然后希望大家都能按这个原型连上的属性方法来罢了?

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师