开发者社区> 问答> 正文

javascript中,两种继承方法的区别

`function Foo(){ /some attributes and methods here/ }
function Bar(){}`
比如声明了Foo之后,想让Bar继承它,好像有两种方法:
1.Bar.prototype = new Foo();

  1. Bar.prototype = Foo.prototype;
    这两种方法是完全等价的吗?还是有啥细微差别?

展开
收起
小旋风柴进 2016-03-18 09:34:19 1766 0
1 条回答
写回答
取消 提交回答
  • 继承方法还有很多,不只这2种
    这两种都是原型继承的方式
    ``
    一、继承Prototype Bar.prototype = Foo.prototype;

    用Foo的原型对象来覆盖Bar的原型对象;前面说到对象的赋值实质上是引用赋值,所以如果`Bar.prototype上的任何修改都会体现到Foo.prototype中,即子类会影响父类。
    Bar.prototype.add=function(){alert("add")};
    Foo.prototype.add();//弹出add`

    二、继承实例 Bar.prototype = new Foo();
    创建了实例,比起前面那种,浪费些内存,不过可以忽略

    2019-07-17 19:05:53
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载