在 JavaScript 中,继承是通过原型链(prototype chain)来实现的。每个对象都有一个原型对象(prototype),并可以从原型对象继承属性和方法。

下面是 JavaScript 中的继承过程的概述:

  1. 创建父类构造函数:首先,创建一个父类的构造函数,定义父类的属性和方法。

  2. 创建子类构造函数:然后,创建一个子类的构造函数,可以使用 function 关键字来定义。在子类构造函数内部,使用 call() 方法调用父类构造函数,以继承父类的属性。

function Parent(name) {
  this.name = name;
}

function Child(name, age) {
  Parent.call(this, name); // 继承父类属性
  this.age = age;
}
  1. 建立原型链:接下来,通过将子类的原型对象(prototype)指向父类的实例,建立原型链。

Child.prototype = Object.create(Parent.prototype);
Child.prototype.constructor = Child;

通过 Object.create() 方法,将子类的原型对象指向父类的实例。这样子类就可以从父类的原型对象中继承属性和方法。

  1. 添加子类特有的方法:在子类的原型对象上添加子类特有的方法。

Child.prototype.sayHello = function() {
  console.log('Hello, I am ' + this.name + ' and I am ' + this.age + ' years old.');
};

在子类的原型对象上添加新的方法,这些方法只在子类的实例上可用。

现在,可以创建子类的实例并调用方法了:

var child = new Child('Alice', 5);
child.sayHello();  // 输出:Hello, I am Alice and I am 5 years old.

通过以上步骤,实现了子类对父类的属性和方法的继承。子类的实例可以访问父类的属性,并且可以调用从父类继承的方法。

需要注意的是,JavaScript 中的继承是基于原型的继承,而不是传统的基于类的继承。通过原型链,对象可以通过原型对象进行属性和方法的继承。这种继承方式在 JavaScript 中非常灵活,并且可以实现多层级的继承关系。