JavaScript 继承在的构造函数中是如何工作的
在这篇文章中,我们将讨论继承在JavaScript中是如何工作的,以及你如何在JavaScript的构造函数中利用这一OOPS特性。
我们还将略微讨论一下JavaScript中的原型对象。因此,如果你有这方面的知识,我们会非常感激。
在JavaScript中,继承是一种机制,一个对象可以从另一个对象继承属性和方法。这可以通过构造函数和原型属性来实现。
当创建一个构造函数时,你可以使用prototype属性来向构造函数的原型对象添加属性和方法。然后这些属性和方法会被任何使用构造函数创建的对象继承。
例子
让我们在以下例子的帮助下理解这一点
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.getName = function() {
return this.name;
};
在这个例子中,Person构造函数有一个名字和年龄属性以及一个getName方法。任何使用 Person 构造函数创建的对象都会有这些属性和方法从原型中继承过来。
你也可以创建一个继承自现有构造函数的新构造函数,方法是使用调用或应用方法来调用父构造函数,并将其作为第一个参数传入。
例子
以下是继承在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中,构造函数可以用来创建继承父对象的属性和方法的对象,这可以通过向构造函数的原型对象添加属性和方法来实现,或者通过创建一个新的构造函数来继承现有的构造函数。