前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【前端】两种实现原型继承的方法的对比

【前端】两种实现原型继承的方法的对比

作者头像
zhaokang555
发布2023-10-17 09:47:48
930
发布2023-10-17 09:47:48
举报

Preconditions:

代码语言:javascript
复制
function Student(props) {
    this.name = props.name || 'Unnamed';
}

Student.prototype.hello = function () {
    alert('Hello, ' + this.name + '!');
}

function PrimaryStudent(props) {
    // 调用Student构造函数,绑定this变量:
    Student.call(this, props);
    this.grade = props.grade || 1;
}

方法一:

代码语言:javascript
复制
function inherits(Child, Parent) {
    Child.prototype = new Parent();
    Child.prototype.constructor = Child;
}

inherits(PrimaryStudent, Student);

这种情况下PrimaryStudent.prototype.name等于'Unnamed',这条属性显然是多余的。

方法二:

代码语言:javascript
复制
function inherits(Child, Parent) {
    var F = function () {};
    F.prototype = Parent.prototype;
    Child.prototype = new F();
    Child.prototype.constructor = Child;
}

inherits(PrimaryStudent, Student);

这种情况下PrimaryStudent.prototype并没有name这条属性。事实上,PrimaryStudent.prototype上一条冗余属性都没有,非常干净。

总结:

方法二更好。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-02-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Preconditions:
  • 方法一:
  • 方法二:
  • 总结:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档