采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
描述&理解: 这里我把之前的study1 也变成了study2;之后展现出了一些有意思的情况,如上面白色的图 两个study2不出预料被干掉了一个。却是把{ 构造函数 原型属性} 里面的原型属性干掉了,student.prototype.study2 就替换了前任的位置,看起来是这么回事啊
问题: 我想知道这个情况说明什么问题吗?
“却是把{ 构造函数 原型属性} 里面的原型属性干掉了”—— 你说哪个没有了?
一个class扩展, 一个prototype 扩展 两个都是相同的方法, 在实际调用的时候,优先选择的是prototype的扩展(不知道是不是书写顺序的原因) 如果按照上一个问题您的回答 "我理解它应该是为了区分这个方法是 class method 还是你自己通过 prototype 扩展的" prototype扩展是实体,class扩展是虚体,那么这个例子留下来的就应该是虚体,那么应该打印 'study2' 结果输出是study1呀 “却是把{ 构造函数 原型属性} 里面的原型属性干掉了” 我的意思是,两个study 函数同名,留下了一个 , 留下的那个是prototype扩展的,被干掉的就是class 扩展的
class 中定义了 study2 ,然后你又用 property 重新定义了一个 study2 ,这就是把前面的覆盖了。
登录后可查看更多问答,登录/注册
系统学习JS设计模式,增强设计思想,提高代码质量。
2.3k 13
1.5k 10
1.3k 10
1.5k 9
1.7k 8
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号