JavaScript中构造函数中的继承是如何工作的?

WBOY
WBOY 转载
2023-08-21 20:33:08 836浏览

JavaScript中构造函数中的继承是如何工作的?

在本文中,我们将讨论JavaScript中继承的工作原理以及如何在JavaScript的构造函数中利用这种面向对象编程特性。

我们还将简要介绍JavaScript中的原型对象。因此,对此有一些先前的了解将会非常感激。

在JavaScript中,继承是一种机制,通过该机制,一个对象可以从另一个对象继承属性和方法。这可以通过使用构造函数和原型属性来实现。

在创建构造函数时,您可以使用原型属性向构造函数的原型对象添加属性和方法。然后,使用构造函数创建的任何对象都会继承这些属性和方法。

示例

让我们通过以下示例来理解:

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

在这个例子中,Person构造函数具有name和age属性以及一个getName方法。使用Person构造函数创建的任何对象都会从原型继承这些属性和方法。

您还可以通过使用call或apply方法调用父构造函数并将this作为第一个参数传递来创建一个从现有构造函数继承的新构造函数。

示例

以下是JavaScript中继承工作的完整示例:

// Parent constructor function
function Person(name, age) {
   this.name = name;
   this.age = age;
}
// Adding a method to the prototype
Person.prototype.getName = function() {
   return this.name;
};
// Child constructor function
function Employee(name, age, company) {
   
   // Calling the parent constructor function
   Person.call(this, name, age);
   this.company = company;
}
// Setting the prototype of the child constructor function
Employee.prototype = Object.create(Person.prototype);
Employee.prototype.constructor = Employee;

// Adding a method to the child constructor function
Employee.prototype.getCompany = function() {
   return this.company;
};
const employee1 = new Employee("John", 25, "Google");
console.log(employee1.name); // "John"
console.log(employee1.age); // 25
console.log(employee1.getName()); // "John"
console.log(employee1.getCompany()); // "Google"

在这个例子中,我们有一个父构造函数叫做Person,它接受一个名字和年龄参数,同时它有一个叫做getName()的方法,它被添加到Person构造函数的原型中。然后我们有一个子构造函数叫做Employee,它继承了Person构造函数的属性和方法。Employee构造函数接受一个额外的公司参数,同时它有一个叫做getCompany()的方法,它被添加到Employee构造函数的原型中。

所以,在JavaScript中,构造函数可以用来创建继承自父对象的属性和方法的对象,这可以通过向构造函数的原型对象添加属性和方法,或者通过创建一个继承自现有构造函数的新构造函数来实现。

以上就是JavaScript中构造函数中的继承是如何工作的?的详细内容,更多请关注php中文网其它相关文章!

声明:本文转载于:tutorialspoint,如有侵犯,请联系admin@php.cn删除