返回

原型与继承:一步步掌握 JavaScript 里的关键概念

前端

  1. JavaScript 中的原型

在 JavaScript 中,每个函数都包含一个特殊的属性——prototype,用来指向另一个对象。这个被指向的对象,就是该函数的原型。当创建一个对象的实例时,实例对象将从原型对象中继承属性和方法。例如:

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

Person.prototype.sayHello = function() {
  console.log(`Hello, my name is ${this.name}.`);
};

const john = new Person('John');
john.sayHello(); // 输出: Hello, my name is John.

2. JavaScript 中的继承

在 JavaScript 中,可以通过原型链实现继承。当一个对象从另一个对象继承属性和方法时,我们就说这个对象是另一个对象的子对象。子对象的原型对象,就是父对象的实例。例如:

function Employee(name, title) {
  Person.call(this, name); // 继承Person的属性和方法
  this.title = title;
}

Employee.prototype = Object.create(Person.prototype); // 将Person的prototype赋给Employee的prototype
Employee.prototype.constructor = Employee; // 修正constructor指向

const jane = new Employee('Jane', 'Manager');
jane.sayHello(); // 输出: Hello, my name is Jane.
console.log(jane.title); // 输出: Manager

3. 原型和继承的应用

原型和继承在 JavaScript 中有广泛的应用,包括:

  • 代码复用: 通过继承,我们可以复用代码,避免重复编写相同或相似的代码。
  • 模块化: 通过继承,我们可以将代码组织成不同的模块,方便维护和管理。
  • 多态: 通过继承,我们可以实现多态,即子类对象可以根据自己的实际情况,对父类对象的方法进行重写,从而实现不同的行为。

4. 总结

原型和继承是 JavaScript 中的基础概念,对于理解其面向对象编程至关重要。通过本文,你已经了解了原型和继承的含义、实现方式和应用场景。希望这些知识能够帮助你更好地理解 JavaScript。