一个es6 class问题

一个es6 class问题

老师您好,问一个关于es6 class的问题,class中的constructor构造方法是定义在prototype对象中的吗还是定义在别的地方的,看了阮一峰老师的书,书上的表述有些矛盾,我自己做了一些测试。这样的结果能说明es6的constructor构造方法是定义在prototype对象中的吗

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

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


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

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

4回答
好帮手慕星星 2019-04-23 19:13:31

同学你好,之前给你回答过类似的问题哦,可以看一下:

http://class.imooc.com/course/qadetail/106185

constructor代替的是构造函数,并不是定义在原型上的:

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

所以通过原型访问.constructor构造器,出来的就是整个构造函数。

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

结果:

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

和你用class测试出来的结果是一样的,都是整个构造函数,包括外面的class。

可以再测试理解下,祝学习愉快!

  • 提问者 qq_那些荒废流年 #1
    还是小星星老师讲的好,一下子就解决我的问题了,谢谢!暂时不采纳了哈,因为还有继承方面的一些问题,我先自己查下资料,谢谢老师!
    2019-04-23 21:37:42
  • 你好,因为这个问答盖楼有些多了,看起来可能有些不方便,如果有新问题可以重新在问答区进行提问哦。
    2019-04-24 09:38:51
提问者 qq_那些荒废流年 2019-04-23 17:10:19

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

就是我不是很理解这里画红圈的constructor是不是定义在C的prototype上,如果是的话我打印出来的结果是整个C呀,而并非我想要的红圈中的结果,我就有点不懂了http://img1.sycdn.imooc.com//climg/5cbed6760001502e02500138.jpg

  • Miss路 #1
    能不能把你的代码粘上来,不知道你都写了什么,我好全面综合全局的代码帮你分析。
    2019-04-23 17:30:38
  • 提问者 qq_那些荒废流年 回复 Miss路 #2
    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> </body> <script type="text/javascript"> class E { constructor () { this.name = "dzz"; } } var test = new E(); console.log(E.prototype.constructor); </script> </html> 就这样的啊老师,我是对constructor是否定义在了类的原型上不明确,如果是的话,为啥打印出来的结果不是单个的constructor函数而是整个的类
    2019-04-23 17:38:12
Miss路 2019-04-23 16:49:06

同学,你好。

就是你写的var res3=new E()这句话的时候,prototype就会变成实例的原型。可能说的太专业了,你按照你的理解来是对的。不用管这个什么意思了,按照你的思路来。这句话的意思其实也是你理解的总结,不过说的太专业了,你说的比较通俗一点。

如果帮助到了你,欢迎采纳!

祝学习愉快!

  • 提问者 qq_那些荒废流年 #1
    老师的意思是 res3.__proto__ === E.prototype吗,这个我理解,但是我还是有一个问题,您看评论吧
    2019-04-23 17:07:42
  • Miss路 回复 提问者 qq_那些荒废流年 #2
    “看了阮一峰老师的书,书上的表述有些矛盾,”你是这个疑问吗?这个我也不知道你说的具体是哪里,具体说了什么,但是不管别的地方怎么说,你现在的理解就是对的。
    2019-04-23 17:11:05
  • 提问者 qq_那些荒废流年 #3
    麻烦您再看下评论,我又加了两张图片,麻烦您解释一下
    2019-04-23 17:12:28
Miss路 2019-04-23 16:38:23

同学,你好。你的分析是对的。当new这个类的时候 这个prototype就会变成实例的原型。很棒!

继续加油!

祝学习愉快!

  • 提问者 qq_那些荒废流年 #1
    您的后半句我不是很理解···能详细说下嘛
    2019-04-23 16:43:46
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
热门框架Vue开发WebApp 18版
  • 参与学习           人
  • 提交作业       209    份
  • 解答问题       3299    个

本路径是通过ES6基础知识、运用Zepto、Swiper、fullPag等移动端常用工具包、以及当下流行框架Vue,结合多个实战案例,还原真实开发场景,最终实现手机端购物商城网页开发。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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