为了账号安全,请及时绑定邮箱和手机立即绑定

对js设计模式中extend函数的实现的一点疑问

对js设计模式中extend函数的实现的一点疑问

狐的传说 2018-11-23 18:14:19
在javascript设计模式中 第4.2.2章节中对extend函数的书写如下function extend(subClass,superClass){    var F = function(){};    F.prototype = superClass.prototype;    subClass.prototype = new F();    subClass.prototype.constructor = subClass;}我的问题就是有关这个函数F。如果按照这种方式实现的继承关系,那么最后subClass实例化出来的对象它的原型链应该如下图:但是实际上 chrom控制台输出的却是如下图其中的那个函数F并没有在chrom的调试中表现出来。我的问题就是F为什么没有在原型链中?
查看完整描述

1 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

Test.__proto__ === subClass.prototype

Test.__proto__.__proto__ === subClass.prototype.__proto__ === superClass.prototype

这就是原型链了,空函数F只是作为一个临时的构造函数,本质上只是为了实现subClass.prototype.__proto__ === superClass.prototype,本来这样的实现方式subClass.prototype = new superClass()就可以实现,但是使用空函数可以避免一些问题,比如说superClass的属性很多


查看完整回答
反对 回复 2018-12-21
  • 1 回答
  • 0 关注
  • 427 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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