js实现继承的几种方式是什么

2023-08-24 03:18:37 0 0 编辑:亿网科技有限公司 来源:本站原创

JavaScript中实现继承有以下几种方式:

1.原型继承

通过原型链实现继承,让子类的原型对象指向父类的实例对象,从而实现继承。

function Parent() {}
Parent.prototype.sayHello = function () {
console.log('Hello!');
};
function Child() {}
Child.prototype = new Parent();
const child = new Child();
child.sayHello();

2.构造函数继承

将子类的构造函数内部调用父类的构造函数,使用call或apply方法指定this指向。这样就可以实现从父类的实例对象继承属性和方法。

function Parent(name) {
this.name = name;
}
Parent.prototype.sayHello = function () {
console.log(`Hello, I'm ${this.name}!`);
};
function Child(name, age) {
Parent.call(this, name);
this.age = age;
}
const child = new Child('Alice', 6);
console.log(child.name); // Alice
console.log(child.age); // 6

3.组合继承

组合继承即将原型继承和构造函数继承结合起来使用。这种方式是目前比较常用的继承方式。

function Parent(name) {
this.name = name;
}
Parent.prototype.sayHello = function () {
console.log(`Hello, I'm ${this.name}!`);
};
function Child(name, age) {
Parent.call(this, name);
this.age = age;
}
Child.prototype = new Parent();
const child = new Child('Bob', 8);
console.log(child.name); // Bob
console.log(child.age); // 8
child.sayHello(); // Hello, I'm Bob!

4.class继承

使用ES6中的class关键字实现继承。使用extends关键字指定父类,使用super关键字调用父类构造函数和方法。

class Parent {
constructor(name) {
this.name = name;
}
sayHello() {
console.log(`Hello, I'm ${this.name}!`);
}
}
class Child extends Parent {
constructor(name, age) {
super(name);
this.age = age;
}
}
const child = new Child('Carol', 7);
console.log(child.name); // Carol
console.log(child.age); // 7
child.sayHello(); // Hello, I'm Carol!
关键词: 王安 种丝 电脑 什么 100 过意 产品 教你 兼性 2023 山药 关于
本站文章均为<亿网科技有限公司>网站建设摘自权威资料,书籍,或网络原创文章,如有版权纠纷或者违规问题,请即刻联系我们删除,我们欢迎您分享,引用和转载,我们谢绝直接复制和抄袭!
我们猜你喜欢