Wie schreibe ich „oop' in Javascript
In der Webentwicklung ist JavaScript zu einer sehr beliebten Programmiersprache geworden. In JavaScript ist die objektorientierte Programmierung (OOP) ein wichtiges Konzept. Mit OOP können Sie Ihren Code strukturieren und seine Duplizierung reduzieren, wodurch er einfacher zu warten und zu erweitern ist. In diesem Artikel wird erläutert, wie man OOP in JavaScript schreibt.
- Prototyp und Konstruktor
In JavaScript können die Eigenschaften und Methoden eines Objekts über den Prototyp gemeinsam genutzt werden, und der Konstruktor wird verwendet, um ein neues Objekt zu erstellen und seine Eigenschaften zu initialisieren. Das Folgende ist ein einfaches Beispiel für die Verwendung von Konstruktoren und Prototypen:
function Person(name, age) { this.name = name; this.age = age; } Person.prototype.sayHi = function() { console.log("Hi, my name is " + this.name + " and I'm " + this.age + " years old."); } var person1 = new Person("John", 30); var person2 = new Person("Mary", 25); person1.sayHi(); // Hi, my name is John and I'm 30 years old. person2.sayHi(); // Hi, my name is Mary and I'm 25 years old.
Im obigen Beispiel definieren wir einen Person
-Konstruktor und initialisieren name
und age
Attribut. Dann verwenden wir Person.prototype
, um jedem Person
-Objekt eine sayHi
-Methode hinzuzufügen. Diese Methode kann von allen Person
verwendet werden /code> code>Objektfreigabe. Schließlich haben wir zwei Person
-Objekte erstellt und deren Methode sayHi
aufgerufen. Person
构造函数,初始化了name
和age
属性。然后,我们使用Person.prototype
给每个Person
对象添加了一个sayHi
方法,这个方法可以被所有Person
对象共享。最后,我们创建了两个Person
对象,并调用了它们的sayHi
方法。
- 类(class)
在ES6中,JavaScript引入了类的概念,并使用关键字class
来实现。类提供了一种更简洁、更易于理解的语法,用于定义对象。
以下是一个使用类的例子:
class Person { constructor(name, age) { this.name = name; this.age = age; } sayHi() { console.log("Hi, my name is " + this.name + " and I'm " + this.age + " years old."); } } let person1 = new Person("John", 30); let person2 = new Person("Mary", 25); person1.sayHi(); // Hi, my name is John and I'm 30 years old. person2.sayHi(); // Hi, my name is Mary and I'm 25 years old.
在上面的例子中,我们使用class
关键字定义了一个Person
类,并在constructor
方法中初始化了name
和age
属性。然后,我们定义了一个sayHi
方法,用于输出一个招呼。最后,我们创建了两个Person
对象,并调用了它们的sayHi
方法。
- 继承(inheritance)
在OOP中,继承是指从一个已有的对象中派生出一个新的对象,新对象继承了原来的对象的属性和方法。在JavaScript中,继承可以通过使用prototype
和class
来实现。
以下是使用prototype
实现继承的例子:
function Person(name, age) { this.name = name; this.age = age; } Person.prototype.sayHi = function () { console.log("Hi, my name is " + this.name + " and I'm " + this.age + " years old."); } function Student(name, age, major) { Person.call(this, name, age); this.major = major; } Student.prototype = Object.create(Person.prototype); Student.prototype.constructor = Student; Student.prototype.sayMajor = function() { console.log("My major is " + this.major + "."); } let person1 = new Person("John", 30); let student1 = new Student("Mary", 25, "Computer Science"); person1.sayHi(); // Hi, my name is John and I'm 30 years old. student1.sayHi(); // Hi, my name is Mary and I'm 25 years old. student1.sayMajor(); // My major is Computer Science.
在上面的例子中,我们定义了一个Person
构造函数,在原型中添加了sayHi
方法。另外,我们定义了一个Student
构造函数,通过使用call
方法调用了Person
构造函数来初始化name
和age
属性,并添加了一个major
属性。然后,我们使用Object.create
方法创建了一个Person.prototype
的副本,并将其指定给Student.prototype
,以便Student
对象可以继承Person
对象的属性和方法。最后,我们定义了一个sayMajor
方法,用于输出学生的专业。最终,我们创建了一个Person
对象和一个Student
对象,并调用了他们的方法。
以下是使用class
实现继承的例子:
class Person { constructor(name, age) { this.name = name; this.age = age; } sayHi() { console.log("Hi, my name is " + this.name + " and I'm " + this.age + " years old.") } } class Student extends Person { constructor(name, age, major) { super(name, age); this.major = major; } sayMajor() { console.log("My major is " + this.major + "."); } } let person1 = new Person("John", 30); let student1 = new Student("Mary", 25, "Computer Science"); person1.sayHi(); // Hi, my name is John and I'm 30 years old. student1.sayHi(); // Hi, my name is Mary and I'm 25 years old. student1.sayMajor(); // My major is Computer Science.
在上面的例子中,我们定义了一个Person
类,在constructor
方法中初始化了name
和age
属性,并在sayHi
方法中输出了一个招呼。然后,我们使用extends
关键字创建了一个Student
类,并使用super
关键字调用了Person
类的constructor
方法来初始化name
和age
属性,并添加了一个major
属性。最后,我们定义了一个sayMajor
方法,用于输出学生的专业。最终,我们创建了一个Person
对象和一个Student
对象,并调用了他们的方法。
结论:
在JavaScript中,OOP是一种非常重要的概念,使用对象、构造函数、原型和类可以更好地组织代码和减少重复性。继承可以通过原型和类来实现。从ES6开始,JavaScript引入了关键字class
- Klasse (Klasse)🎜🎜🎜In ES6 führte JavaScript das Konzept der Klasse ein und verwendete das Schlüsselwort
class
, um es zu implementieren. Klassen bieten eine sauberere, leichter verständliche Syntax zum Definieren von Objekten. 🎜🎜Das Folgende ist ein Beispiel für die Verwendung von Klassen: 🎜rrreee🎜Im obigen Beispiel verwenden wir das Schlüsselwort class
, um eine Klasse Person
zu definieren und sie im constructor Die Eigenschaften <code>name
und age
werden in der Methode initialisiert. Dann haben wir eine sayHi
-Methode definiert, um eine Begrüßung auszugeben. Schließlich haben wir zwei Person
-Objekte erstellt und deren Methode sayHi
aufgerufen. 🎜- 🎜Vererbung🎜🎜🎜In OOP bedeutet Vererbung das Ableiten eines neuen Objekts von einem vorhandenen Objekt. Das neue Objekt erbt die Eigenschaften und Methoden des ursprünglichen Objekts. In JavaScript kann die Vererbung durch die Verwendung von
prototype
und class
erreicht werden. 🎜🎜Das Folgende ist ein Beispiel für die Verwendung von prototype
zur Implementierung der Vererbung: 🎜rrreee🎜Im obigen Beispiel definieren wir einen Person
-Konstruktor und fügen zum Prototyp sayHi hinzu
Methode. Darüber hinaus haben wir einen Student
-Konstruktor definiert und den Person
-Konstruktor mit der Methode call
aufgerufen, um name
und age-Attribute hinzugefügt und ein major
-Attribut hinzugefügt. Anschließend erstellen wir eine Kopie von Person.prototype
mit der Methode Object.create
und weisen sie Student.prototype
zu, sodass Student-Objekte können die Eigenschaften und Methoden von <code>Person
-Objekten erben. Schließlich definieren wir eine sayMajor
-Methode, um das Hauptfach des Studenten auszugeben. Schließlich haben wir ein Person
-Objekt und ein Student
-Objekt erstellt und deren Methoden aufgerufen. 🎜🎜Das Folgende ist ein Beispiel für die Verwendung von class
zum Implementieren der Vererbung: 🎜rrreee🎜Im obigen Beispiel definieren wir eine Person
-Klasse im constructor
Die Attribute name
und age
werden in der Methode initialisiert und eine Begrüßung wird in der Methode sayHi
ausgegeben. Dann haben wir eine Student
-Klasse mit dem Schlüsselwort extends
erstellt und die Klasse Person
mit dem Schlüsselwort super
aufgerufen Die Methode code>constructor initialisiert die Eigenschaften name
und age
und fügt eine Eigenschaft major
hinzu. Schließlich definieren wir eine sayMajor
-Methode, um das Hauptfach des Studenten auszugeben. Schließlich haben wir ein Person
-Objekt und ein Student
-Objekt erstellt und deren Methoden aufgerufen. 🎜🎜Fazit: 🎜🎜In JavaScript ist OOP ein sehr wichtiges Konzept, bei dem Objekte, Konstruktoren, Prototypen und Klassen verwendet werden, um Code besser zu organisieren und Duplikate zu reduzieren. Vererbung kann durch Prototypen und Klassen erreicht werden. Ab ES6 führte JavaScript das Schlüsselwort class
ein, das eine einfachere und leichter verständliche Syntax zum Definieren von Objekten bietet. Wann immer möglich, ist es wichtig, den richtigen Ansatz zum Schreiben von OOP-Code zu wählen, da dieser erhebliche Vorteile bei der Projektentwicklung und -wartung mit sich bringt. 🎜Das obige ist der detaillierte Inhalt vonWie schreibe ich „oop' in Javascript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



In dem Artikel wird die Verwendung von UseEffect in React, einen Haken für die Verwaltung von Nebenwirkungen wie Datenabrufen und DOM -Manipulation in funktionellen Komponenten erläutert. Es erklärt die Verwendung, gemeinsame Nebenwirkungen und Reinigung, um Probleme wie Speicherlecks zu verhindern.

Der Artikel erläutert den Versöhnungsalgorithmus von React, der das DOM effizient aktualisiert, indem virtuelle DOM -Bäume verglichen werden. Es werden Leistungsvorteile, Optimierungstechniken und Auswirkungen auf die Benutzererfahrung erörtert.

Funktionen höherer Ordnung in JavaScript verbessern die Übersichtlichkeit, Wiederverwendbarkeit, Modularität und Leistung von Code durch Abstraktion, gemeinsame Muster und Optimierungstechniken.

In dem Artikel wird das Currying in JavaScript, einer Technik, die Multi-Argument-Funktionen in Einzelargument-Funktionssequenzen verwandelt. Es untersucht die Implementierung von Currying, Vorteile wie teilweise Anwendungen und praktische Verwendungen, Verbesserung des Code -Lesens

Der Artikel erläutert den Usecontext in React, was das staatliche Management durch Vermeidung von Prop -Bohrungen vereinfacht. Es wird von Vorteilen wie zentraler Staat und Leistungsverbesserungen durch reduzierte Neulehre erörtert.

In Artikel werden die Verbindungskomponenten an Redux Store mit Connect () verbinden, wobei MapStatetoprops, MapDispatchtoprops und Leistungsauswirkungen erläutert werden.

In Artikeln werden das Standardverhalten bei Ereignishandlern mithilfe von PURDDEFAULT () -Methoden, seinen Vorteilen wie verbesserten Benutzererfahrungen und potenziellen Problemen wie Barrierefreiheitsproblemen verhindern.

Der Artikel erörtert die Vor- und Nachteile kontrollierter und unkontrollierter Komponenten bei React, wobei sich auf Aspekte wie Vorhersehbarkeit, Leistung und Anwendungsfälle konzentriert. Es rät zu Faktoren, die bei der Auswahl zwischen ihnen berücksichtigt werden müssen.
