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

红皮书说的借用构造函数继承问题

红皮书说的借用构造函数继承问题

www说 2018-11-14 13:10:34
javascript高级程序设计 p167 页说借用构造函数无法函数复用,而且在超类型的原型中定义的方法,对子类型不可见1.为什么不能函数复用?下面代码不算复用吗?function Super(name) {    this.name = name    this.say = function () {        console.log(this.name)    }}function Sub(name) {    Super.call(this, name)}var i1 = new Sub('sub1')var i2 = new Sub('sub2')i1.say()i2.say()2.在超类型的原型中定义的方法,对子类型不可见什么意思?
查看完整描述

1 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

1.借用构造函数也是构造函数,所以每一个实例的里面的函数都是单独,并不是复用同一个函数,这在144页的构造函数里面有提及。

2.简单来说,因为super.prototype不等于sub.prototype,所以当你用

super.prototype.func = func;

给超类定义一个函数时,通过new sub()得到的实例并没有这个函数。所以说对于子类不可见。


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

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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