为什么我们在原型继承中使用一个临时框?

Winston Zhao

以下功能是youtube上的Derek Banas在OO Javascript教程上使用的功能。

function extend(Child, Parent){
  var Temp = function(){};

  Temp.prototype = Parent.prototype;

  Child.prototype = new Temp();

  Child.prototype.constructor = Child;

}

为什么我们必须使用Temp原型?我们为什么不能这样做:

function extend(Child, Parent){


  Child.prototype = new Parent();

  Child.prototype.constructor = Child;

}
桑迪普

好。这两个功能的主要区别在于行

Temp.prototype = Parent.prototype;

Child.prototype = new Parent();

第一个extend功能仅显示原型继承。Child不会继承的任何财产Parent,这是不是有在它的原型,你可以看到,你是不是调用父类的constructor任何地方。

我在这里做了一个小提琴来解释这一点

在第二个extend函数中,当您调用Parent时constructor Child.prototype = new Parent()ParentParent原型中存在的的所有属性,以及所有不存在的属性都将被继承Child也就是说,这一切都将进入孩子的prototype

我在这里也创建了一个小提琴来解释这一点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C# - 为什么我们可以继承一个接口两次?

来自分类Dev

为什么我们要指定一个委托和一个事件,为什么不只在C#中使用一个事件呢?

来自分类Dev

为什么我们在html中使用id。我认为我们可以将一个类用作id

来自分类Dev

当我们使2个对象的哈希码指向一个地址时,为什么它是临时的?

来自分类Dev

为什么我们可以非常量引用一个临时对象并延长其寿命?

来自分类Dev

为什么我们需要创建一个one-arg构造函数才能使用临时的无名对象?

来自分类Dev

为什么我们使用另一个继承活页夹类的类来访问BoundServices?

来自分类Dev

LinkedList 删除:为什么我们不使用前一个覆盖头部?

来自分类Dev

为什么我们在那里使用一个monoid和一个函子?

来自分类Dev

为什么我们需要在另一个队列上使用dispatch_sync()而不是在iOS GCD中使用当前队列/线程

来自分类Dev

我们可以使用临时表创建一个永久表吗

来自分类Dev

为什么我们需要一个“MultiRepositoryProvider”和一个单独的“MultiBlocProvider”?

来自分类Dev

为什么当我们声明一个额外的模板参数并且未在定义中使用时编译器会抛出错误?

来自分类Dev

当我们有一个红色区域时,为什么我们需要堆栈分配?

来自分类Dev

当我们在一个接口中添加两个抽象方法并只实现一个方法时,为什么我们不能使用 lambda 实现另一个方法呢?

来自分类Dev

为什么我们需要两个接口来枚举一个集合?

来自分类Java

为什么我们在主体是一个return语句时使用if,else if而不是多个if块

来自分类Dev

为什么我们必须创建一个新对象“输入”而不是直接使用 Scanner.nextLine() ?

来自分类Dev

为什么我们在使用 Apache Kafka 时需要一个数据库?

来自分类Dev

如果我们已经得到一个随机数组,为什么要使用随机快速排序?

来自分类Dev

为什么我们要为一个网站使用两台服务器

来自分类Dev

了解 Xcode 中的 .xcconfig 文件,我们为什么要使用它。我看到一个用于调试,一个用于发布。

来自分类Java

为什么对于equals方法我们需要一个Object参数?

来自分类Dev

为什么我们必须从一个小部件更新多个小部件?

来自分类Dev

为什么我们需要在React Hook中返回一个函数?

来自分类Dev

Java LRUCache,为什么我们需要另一个集合

来自分类Java

为什么说我们不需要克隆一个不可变类?

来自分类Dev

为什么我们需要一个NAT实例?

来自分类Dev

为什么我们需要另一个模式来进行模式缝合?

Related 相关文章

  1. 1

    C# - 为什么我们可以继承一个接口两次?

  2. 2

    为什么我们要指定一个委托和一个事件,为什么不只在C#中使用一个事件呢?

  3. 3

    为什么我们在html中使用id。我认为我们可以将一个类用作id

  4. 4

    当我们使2个对象的哈希码指向一个地址时,为什么它是临时的?

  5. 5

    为什么我们可以非常量引用一个临时对象并延长其寿命?

  6. 6

    为什么我们需要创建一个one-arg构造函数才能使用临时的无名对象?

  7. 7

    为什么我们使用另一个继承活页夹类的类来访问BoundServices?

  8. 8

    LinkedList 删除:为什么我们不使用前一个覆盖头部?

  9. 9

    为什么我们在那里使用一个monoid和一个函子?

  10. 10

    为什么我们需要在另一个队列上使用dispatch_sync()而不是在iOS GCD中使用当前队列/线程

  11. 11

    我们可以使用临时表创建一个永久表吗

  12. 12

    为什么我们需要一个“MultiRepositoryProvider”和一个单独的“MultiBlocProvider”?

  13. 13

    为什么当我们声明一个额外的模板参数并且未在定义中使用时编译器会抛出错误?

  14. 14

    当我们有一个红色区域时,为什么我们需要堆栈分配?

  15. 15

    当我们在一个接口中添加两个抽象方法并只实现一个方法时,为什么我们不能使用 lambda 实现另一个方法呢?

  16. 16

    为什么我们需要两个接口来枚举一个集合?

  17. 17

    为什么我们在主体是一个return语句时使用if,else if而不是多个if块

  18. 18

    为什么我们必须创建一个新对象“输入”而不是直接使用 Scanner.nextLine() ?

  19. 19

    为什么我们在使用 Apache Kafka 时需要一个数据库?

  20. 20

    如果我们已经得到一个随机数组,为什么要使用随机快速排序?

  21. 21

    为什么我们要为一个网站使用两台服务器

  22. 22

    了解 Xcode 中的 .xcconfig 文件,我们为什么要使用它。我看到一个用于调试,一个用于发布。

  23. 23

    为什么对于equals方法我们需要一个Object参数?

  24. 24

    为什么我们必须从一个小部件更新多个小部件?

  25. 25

    为什么我们需要在React Hook中返回一个函数?

  26. 26

    Java LRUCache,为什么我们需要另一个集合

  27. 27

    为什么说我们不需要克隆一个不可变类?

  28. 28

    为什么我们需要一个NAT实例?

  29. 29

    为什么我们需要另一个模式来进行模式缝合?

热门标签

归档