// 父类
function People(name, sex, age) {
this.name = name
this.sex = sex
this.age = age
}
// 父类方法
People.prototype.doEat = function () {
console.log('do eat...')
}
// 子类
function ChinesePeople(name, sex, age, national) {
//子中调用父类的构造函数
People.call(this, name, sex, age)
this.national = national
}
// 用于继承的通用方法实现一
function _extends(parent, child) {
function Middle() {
this.constructor = child
}
Middle.prototype = parent.prototype
return new Middle()
}
ChinesePeople.prototype = _extends(People, ChinesePeople)
//实例化子类
let p = new ChinesePeople("王五", '男', 20, '汉族');
p.doEat()
console.log(p)
// 用于继承的通用方法实现二
function _extends2(parent, child) {
return Object.create(parent.prototype, {
constructor: {
value: child,
},
prototype: {
value: parent.prototype
}
})
}
ChinesePeople.prototype = _extends2(People, ChinesePeople)
// 实例化子类
let p2 = new ChinesePeople("王五", '男', 20, '汉族');
p2.doEat()
console.log(p2)
ES5继承案例代码
于 2022-10-02 15:01:18 首次发布