构造函数式继承
继承 构造函数
2023-09-11 14:17:02 时间
构造函数式继承
// 构造函数式继承
// 声明父类
function SuperClass(id) {
// 引用类型共有属性
this.books = ['js', 'html', 'css']
// 类类型共有属性
this.id = id
}
// 父类声明原型方法
SuperClass.prototype.showBooks = function () {
console.log(this.books)
}
// 声明子类
function SubClass(id) {
// 继承父类
SuperClass.call(this, id) // call 方法
}
// 创建第一个子类的实例
var c1 = new SubClass(10)
var c2 = new SubClass(11)
c1.books.push('vue')
console.log(c1.books) // [ 'js', 'html', 'css', 'vue' ]
console.log(c1.id) // 10
console.log(c2.books) // [ 'js', 'html', 'css' ]
console.log(c2.id) // 11
c1.showBooks() // TypeError
// 虽然解决了子类修改共有属性会影响其他子类的问题,但父类中的原型方法没有被子类复用
相关文章
- 多态-I(继承实现)
- PHP中类的继承和构造函数的继承
- Java中继承的详细用法
- 类关系:继承和组合
- React组件继承,泛型写法
- 继承View绘制正方形且360旋转
- Scala入门到精通——第九节 继承与组合
- Javascript面向对象编程(二):构造函数的继承
- Javascript继承机制的设计思想
- Javascript面向对象编程(二):构造函数的继承
- 【专题讨论】【继承】父类构造器中调用了被子类重写的方法
- Qt新建一个继承自QThread的类
- CSS继承控制:inherit、initial和unset
- 继承构造函数的调用顺序
- Servlet,GenericServlet和HttpServlet的继承关系
- Java怎么实现多继承的功效
- .NET Framework中重点类型的继承关系
- C++多继承时的对象内存模型