继承
虽然已经ES6,7,8时代了,但是今天重翻《JavaScript高级程序设计》继承这一块的知识,慢慢看,认真思考,看到组合继承时怀疑调用两遍函数,有点疑惑,后来发现寄生组合式继承改变了这个问题,带给我的思考挺多的,还是要多想,思考是最重要的。
原型链继承
1 | function Parent() { |
问题:1.引用类型的属性被所有实例共享 2.在创建 Child 的实例时,不能向Parent传参
借用构造函数
1 | function Parent(name) { |
问题:方法都在构造函数中定义,每次创建实例都会创建一遍方法
组合继承
1 | function Parent(name) { |
问题:会调用两次父构造函数,且child1,2的原型中会有colors
原型式继承
1 | function createObj(o) { |
问题:包含引用类型的属性值始终都会共享相应的值,这点跟原型链继承一样
寄生式继承
1 | function createObj (o) { |
问题:跟借用构造函数模式一样,每次创建对象都会创建一遍方法。
寄生组合式继承
1 | function Parent (name) { |