In der modernen Webentwicklung ist JavaScript zu einer unverzichtbaren Sprache geworden. Unter diesen sind objektorientierte Programmierung (OOP) und Vererbung zwei wichtige Aspekte in der JavaScript-Entwicklung. Dieser Artikel führt Leser in die objektorientierte Programmierung und Vererbung in JavaScript ein und gibt konkrete Codebeispiele.
1. Objektorientierte Programmierung
Objektorientierte Programmierung ist eine Programmiermethode, die Objekte als Grundeinheit des Programms verwendet und Daten und Datenoperationen kapselt. In JavaScript können wir Objekte und Funktionen verwenden, um objektorientierte Programmierung zu implementieren.
In JavaScript ist ein Objekt eine Sammlung von Schlüssel-Wert-Paaren. Wir können geschweifte Klammern verwenden, um ein Objekt zu definieren:
var person = { name: 'Tom', age: 18, sayHello: function() { console.log('Hello, my name is ' + this.name); } };
Im obigen Code definieren wir ein Objekt mit drei Eigenschaften. Unter diesen sind name
und age
Grundattribute und sayHello
ist eine Methode. Auf die Eigenschaften und Methoden eines Objekts kann zugegriffen werden über: name
和age
是基本属性,sayHello
是一个方法。可以通过以下方式访问对象的属性和方法:
console.log(person.name); // 输出 'Tom' person.sayHello(); // 输出 'Hello, my name is Tom'
在JavaScript中,函数是一种特殊的对象。我们可以使用函数来创建对象、封装操作和定义类。下面是一个使用函数来创建对象的示例:
function Person(name, age) { this.name = name; this.age = age; this.sayHello = function() { console.log('Hello, my name is ' + this.name); } } var person = new Person('Tom', 18); person.sayHello(); // 输出 'Hello, my name is Tom'
在上面的代码中,我们定义了一个Person
函数来创建一个包含name
和age
属性的对象。这里使用了this
关键字来代表当前的对象。通过new Person('Tom', 18)
语句来创建一个新的Person
对象。
二、继承
继承是一种实现代码复用的方式。在JavaScript中,我们可以使用原型链来实现继承。
JavaScript中的对象有一个指向其原型对象的指针。我们可以通过原型对象来实现继承,即子对象继承父对象的属性和方法。
function Person(name, age) { this.name = name; this.age = age; } Person.prototype.sayHello = function() { console.log('Hello, my name is ' + this.name); } function Student(name, age, grade) { Person.call(this, name, age); this.grade = grade; } Student.prototype = Object.create(Person.prototype); Student.prototype.constructor = Student; var student = new Student('Tom', 18, 3); student.sayHello(); // 输出 'Hello, my name is Tom'
在上面的代码中,我们定义了一个Person
函数和一个Student
函数。使用Object.create()
来创建一个新的对象作为Student.prototype
,这个新的对象的原型为Person.prototype
。这样,Student
函数就可以继承Person
函数的属性和方法。
使用call()
函数来继承Person
的属性和方法:Person.call(this, name, age)
,这里的this
表示的是Student
函数创建的对象。
最后,将Student.prototype
的constructor
属性指向Student
函数本身,这样我们在使用new
关键字创建新的Student
对象时,就可以调用Student
自身的构造函数。
在ES6中,我们可以使用class
关键字来定义类。class
关键字封装了function
和prototype
两个部分,让我们更方便地定义类。
下面是一个使用ES6定义继承的例子:
class Person { constructor(name, age) { this.name = name; this.age = age; } sayHello() { console.log('Hello, my name is ' + this.name); } } class Student extends Person { constructor(name, age, grade) { super(name, age); this.grade = grade; } } let student = new Student('Tom', 18, 3); student.sayHello(); // 输出 'Hello, my name is Tom'
在上面的代码中,我们使用class
关键字来定义Person
和Student
两个类。使用extends
关键字来实现继承。
使用super
关键字调用父类的构造函数和方法。在Student
的构造函数中,使用super(name, age)
来调用Person
的构造函数,实现了对父类成员属性的继承。使用super
关键字调用父类的方法:super.sayHello()
rrreee
In JavaScript ist eine Funktion eine besondere Art von Objekt. Wir können Funktionen verwenden, um Objekte zu erstellen, Operationen zu kapseln und Klassen zu definieren. Hier ist ein Beispiel für die Verwendung einer Funktion zum Erstellen eines Objekts:
rrreee🎜 Im obigen Code definieren wir einePerson
-Funktion, um ein Objekt zu erstellen, das name
und enthält Alter
Das Objekt der Eigenschaft. Das Schlüsselwort this
wird hier verwendet, um das aktuelle Objekt darzustellen. Erstellen Sie ein neues Person
-Objekt mit der Anweisung new Person('Tom', 18)
. 🎜🎜2. Vererbung🎜🎜Vererbung ist eine Möglichkeit, Code wiederzuverwenden. In JavaScript können wir die Prototypenkette verwenden, um die Vererbung zu implementieren. 🎜🎜🎜Prototypenkette🎜🎜🎜Ein Objekt in JavaScript hat einen Zeiger auf sein Prototypobjekt. Wir können die Vererbung über Prototypobjekte implementieren, das heißt, untergeordnete Objekte erben die Eigenschaften und Methoden von übergeordneten Objekten. 🎜rrreee🎜Im obigen Code definieren wir eine Person
-Funktion und eine Student
-Funktion. Verwenden Sie Object.create()
, um ein neues Objekt als Student.prototype
zu erstellen. Der Prototyp dieses neuen Objekts ist Person.prototype
. Auf diese Weise kann die Funktion Student
die Eigenschaften und Methoden der Funktion Person
erben. 🎜🎜Verwenden Sie die Funktion call()
, um die Eigenschaften und Methoden von Person
zu erben: Person.call(this, name, age)
, wobei this stellt das von der Funktion Student
erstellte Objekt dar. 🎜🎜Zum Schluss verweisen Sie das Attribut constructor
von Student.prototype
auf die Funktion Student
selbst, sodass wir die Funktion new verwenden. code>-Taste Beim Erstellen eines neuen <code>Student
-Objekts können Sie den Konstruktor von Student
selbst aufrufen. 🎜class
verwenden, um Klassen zu definieren. Das Schlüsselwort class
kapselt die Teile function
und prototype
, sodass wir Klassen einfacher definieren können. 🎜🎜Das Folgende ist ein Beispiel für die Verwendung von ES6 zum Definieren der Vererbung: 🎜rrreee🎜Im obigen Code verwenden wir das Schlüsselwort class
, um Person
und StudentZwei Klassen. Verwenden Sie das Schlüsselwort <code>extends
, um die Vererbung zu implementieren. 🎜🎜Verwenden Sie das Schlüsselwort super
, um den Konstruktor und die Methoden der übergeordneten Klasse aufzurufen. Verwenden Sie im Konstruktor von Student
super(name, age)
, um den Konstruktor von Person
aufzurufen und die Änderung der übergeordneten Klassenmitgliedsattribute zu realisieren . erben. Verwenden Sie das Schlüsselwort super
, um die Methode der übergeordneten Klasse aufzurufen: super.sayHello()
und realisieren Sie so die Vererbung der Methode der übergeordneten Klasse. 🎜🎜3. Zusammenfassung🎜🎜In diesem Artikel haben wir die objektorientierte Programmierung und Vererbung in JavaScript eingeführt. Implementieren Sie objektorientierte Programmierung mithilfe von Objekten und Funktionen und implementieren Sie die Vererbung mithilfe von Prototypketten und ES6-Vererbung. Ich hoffe, dass es für alle hilfreich ist, die JavaScript-Programmierung zu verstehen. 🎜
Das obige ist der detaillierte Inhalt vonBeherrschen Sie objektorientierte Programmierung und Vererbung in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!