JavaScript中的继承和原型链
#javascript #编程 #发展 #codenewbie

JavaScript继承和原型链

JavaScript是一种多功能且广泛使用的编程语言,为面向对象的编程提供了多种机制。继承是面向对象的编程中的关键概念,它允许您基于现有的对象创建新对象。

继承是通过原型链实现的。在本文中,我们将探索JavaScript继承的世界,了解原型链的工作原理,并在实际情况下实施。

了解JavaScript中的继承

继承是一个对象继承另一个对象的属性和方法的过程。它促进代码重用和抽象。 JavaScript中的继承基于原型,这意味着对象可以直接从其他对象继承属性和方法。

原型链

JavaScript的继承模型的核心是原型链。 JavaScript中的每个对象都有一个原型,这是另一个继承属性和方法的对象。

这种继承链可以扩展到几个层次,形成一系列原型。当您在对象中访问属性或方法时,JavaScript在对象本身中寻找它,如果找不到它,它会通过其原型,依此类推,直到它到达链的末端为止。继续他的搜索。

让我们继续进行一些实际示例,以更好地理解JavaScript中的原型链接和继承。

创建构造函数和原型

首先,我们将为“私有”对象创建一个构造函数函数,并定义其原型:

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

// Define the method in the prototype
person.prototype.sayHello = function() {
  console.log("Hello, my name is ${this name} and I am ${this age}.");
};

这里的身份是一个构造函数函数,将名称和年龄作为参数并分配给创建的对象。我们还为私有原型添加了Sayhello方法。

从“私人”原型继承。

现在创建一个新的学生构造函数,该功能从私有原型继承:

function Student(name, age, student id) {
  // Call the parent constructor (Private) with context 'this'
  Person.call(this, name, age);

  // Additional properties for students
  this.studentId = studentId;
}

// Build prototype chain - Inherit from prototype Adam
Student.prototype = Object.create(Person.prototype);

// Reset constructor properties
Student.prototype.constructor = Student;

在此示例中,我们创建了一个构造函数函数“学生”,该函数接收其他信息,例如“ sudentenId”。为了确保学生从人那里继承属性和方法,我们使用Person.Call(这是名称,年龄)在学生构造者中称为人员。然后,我们通过创建一个使用object.create()从person.protype继承的新对象来设置原型链。最后,我们重置了constructor'' property to point tostudent'',因为当我们构建原型链时,它被覆盖了。

为“学生”添加了自定义方法。

让我们添加一种特殊的学生方法:

student.prototype.study = function (subject) {
  console.log(`${this.name${{Exploring topic.');
};

现在,学生实例可以从学生和学习中访问Sayhello()。

创建一个示例

现在,创建“个人”和“学生”示例以查看继承的工作方式:

const person1 = new Person( 'Alice', 30);
const student1 = new Student ( 'Bob' , 20 , 'S12345' );

person1.sayHello(); // Output: Hi, my name is Alice and I am 30 years old.
student1.sayHello(); // Output: Hi, my name is Bob and I'm 20 years old.
student1.study('Math'); // Output: Bob studied Mathematics.

如图所示,Student1从人原型继承了Sayhello()方法,还可以访问原型本身定义的read()方法。

结果

由原型链促进的

JavaScript继承使您可以通过重复使用和扩展现有对象来创建复杂而结构化的代码。了解原型链的工作原理以及如何实施继承对于有效,可持续地编写JavaScript代码至关重要。无论您是构建简单的Web应用程序还是复杂的软件系统,掌握JavaScript的旧机制都将提高您的编程技能。