Javascript 面向对象编程(三)

目标 理解什么是继承

方法和属性从一个类传递到另一个类的过程

为什么需要继承机制

我们真的需要在学生身上重新定义sayHi吗?这似乎重复……
那怎么办?

将一个对象的原型属性指定为另一个对象的原型属性!

有用:)!

继续看看
在Student prototype对象上添加一些别的

让我们用Person创建一个对象

哦哦……为什么Person原型有student原型的属性?学生继承的是人,而不是人。

问题

  • 我们不能将一个对象分配给另一个对象——它只会创建一个引用!
  • 如果我们改变Student.prototype,会影响Person.prototype
  • 我们仍然需要来自父类原型的所有方法和属性,但是我们想要两个完全独立的对象——而不是引用!
    一个更好的选择Object.create
    创建一个全新的函数并接受它的第一个参数,即新创建对象的原型对象。

Student.prototype 不会影响 Person.prototype !

思考为什么不是new?

优化一下

继承的两个要点

  • 将原型设置为使用另一个原型创建的对象
  • 重置构造函数属性

总结

  • 每次使用new关键字时,在创建的对象和构造函数的prototype属性之间建立一个链接——可以使用proto访问这个链接
  • prototype对象包含一个名为构造函数的属性,该属性指向构造函数
  • 为了共享由构造函数创建的对象的属性和方法,将它们放在原型中,因为它是最有效的。
  • 要将方法和属性从一个原型对象传递到另一个原型对象,我们可以使用继承,其中包括使用对象将prototype属性设置为新创建的对象。创建并重新设置构造函数属性
评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复