写一个函数,接收两个参数,父类SupClass和子类SubClass 表示父构造函数和子构造函数,实现子类继承父类,提示,子类继承父类时不要丢失子类自己的属性和方法
时间: 2024-03-13 16:43:12 浏览: 123
在C++中子类继承和调用父类的构造函数方法
5星 · 资源好评率100%
好的,可以使用以下代码实现:
```
function inherit(SupClass, SubClass) {
// 通过一个空函数中转实现原型链的继承
function F() {}
F.prototype = SupClass.prototype;
SubClass.prototype = new F();
SubClass.prototype.constructor = SubClass;
// 记录子类与父类之间的继承关系
SubClass.superClass = SupClass.prototype;
// 子类自己的属性和方法
SubClass.prototype.subProp = "sub property";
SubClass.prototype.subMethod = function() {
console.log("sub method");
};
}
// 父类
function SupClass() {
this.supProp = "sup property";
}
SupClass.prototype.supMethod = function() {
console.log("sup method");
};
// 子类
function SubClass() {
// 调用父类构造函数
SupClass.call(this);
this.subProp = "override sup property";
}
// 继承父类
inherit(SupClass, SubClass);
// 测试
var subObj = new SubClass();
console.log(subObj.supProp);
subObj.supMethod();
console.log(subObj.subProp);
subObj.subMethod();
```
输出结果为:
```
sup property
sup method
override sup property
sub method
```
解释:inherit函数实现了原型链的继承,并且记录了子类与父类之间的继承关系。在子类构造函数中,调用父类构造函数,同时也可以重写父类的属性。最后,创建子类的实例,并且可以访问父类和子类的属性和方法。
阅读全文