全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  千锋问问

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

问题描述:js实现继承的几种方式是什么

推荐答案 本回答由问问达人推荐

  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!

 

查看其它两个剩余回答
在线咨询 免费试学 教程领取