Detaillierte Erläuterung des Klassenschlüsselworts in ES6
Klasse ist eine der wichtigsten Funktionen, die von es6 eingeführt werden. Bevor es eine Klasse gab, konnten wir Klassen nur über die Prototypenkette simulieren. In diesem Artikel wird hauptsächlich das Schlüsselwort class in ES6 vorgestellt. Class ist eine der wichtigsten Funktionen, die von es6 eingeführt werden. Dieser Artikel gibt Ihnen eine detaillierte Erklärung anhand von Beispielcode. Freunde, die ihn benötigen, können darauf verweisen. Ich hoffe, er kann allen helfen.
1. Einführung
//定义类 class Point { constructor(x, y) { this.x = x; this.y = y; } toString() { return '(' + this.x + ', ' + this.y + ')'; } }
Zusätzlich zur Konstruktionsmethode definiert die Point-Klasse auch eine toString-Methode. Beachten Sie, dass Sie beim Definieren einer „Klassen“-Methode das Schlüsselwort function nicht voranstellen müssen, sondern einfach die Funktionsdefinition direkt einfügen müssen. Darüber hinaus ist es nicht erforderlich, die Methoden durch Kommas zu trennen, da sonst ein Fehler gemeldet wird.
//类的数据类型就是函数,类本身就指向构造函数。用的时候,也是直接对类使用new命令,跟构造函数的用法完全一致。 class Bar { doStuff() { console.log('stuff'); } } var b = new Bar(); b.doStuff() // "stuff"
2. Strikter Modus
Intern ist der Standardmodus von Klassen und Modulen der strikte Modus, daher besteht keine Notwendigkeit, den Ausführungsmodus mit „strict“ anzugeben. Solange Ihr Code in einer Klasse oder einem Modul geschrieben ist, ist nur der strikte Modus verfügbar
3. Konstruktormethode
Die Konstruktormethode ist die Standardmethode der Klasse, wenn eine Objektinstanz vorhanden ist Durch den neuen Befehl wird dieser automatisch generiert. Rufen Sie diese Methode auf. Eine Klasse muss eine Konstruktormethode haben, wenn sie nicht explizit definiert ist, wird standardmäßig eine leere Konstruktormethode hinzugefügt.
class Point { } // 等同于 class Point { constructor() {}//constructor方法默认返回实例对象(即this),完全可以指定返回另外一个对象。 } //注意:类必须使用new调用,否则会报错。这是它跟普通构造函数的一个主要区别,后者不用new也可以执行。
4. Instanzobjekt einer Klasse
Um ein Instanzobjekt einer Klasse zu generieren, verwenden Sie den neuen Befehl.
Sofern die Attribute einer Instanz nicht explizit für sich selbst definiert sind (d. h. für dieses Objekt definiert sind), werden sie für den Prototyp definiert (d. h. für die Klasse definiert).
class Point { // ... } // 报错 var point = Point(2, 3); // 正确 var point = new Point(2, 3);
5. Klassenausdruck
Der folgende Code verwendet einen Ausdruck, um eine Klasse zu definieren. Es ist zu beachten, dass der Name dieser Klasse MyClass anstelle von Me ist und nur im internen Code von Class verfügbar ist und sich auf die aktuelle Klasse bezieht.
const MyClass = class Me { getClassName() { return Me.name; } }; //采用 Class 表达式,可以写出立即执行的 Class。 var person = new class { constructor(name) { this.name = name; } sayName() { console.log(this.name); } }('张三'); person.sayName(); // "张三"
6. Es gibt kein variables Heben
Es gibt kein variables Heben (Hoist) in der Klasse
Im folgenden Code wird zuerst die Foo-Klasse verwendet und zuletzt definiert, wie folgt: Es wird ein Fehler gemeldet, da ES6 die Klassendeklaration nicht in den Kopf des Codes befördert. Der Grund für diese Bestimmung hängt mit der unten erwähnten Vererbung zusammen. Es muss sichergestellt werden, dass die Unterklasse nach der übergeordneten Klasse definiert wird.
new Foo(); // ReferenceError class Foo {}
7. Private Methoden
Private Methoden sind eine häufige Anforderung, ES6 stellt sie jedoch nicht bereit und kann nur durch Problemumgehungen simuliert werden.
Private Methoden hinzufügen
① Machen Sie einen Unterschied bei der Benennung.
② Nutzen Sie die Einzigartigkeit des Symbolwerts und benennen Sie die private Methode als Symbolwert.
/*命名上加以区别*/ class Widget { // 公有方法 foo (baz) { this._bar(baz); } // 私有方法 _bar(baz) { return this.snaf = baz; } // ... } /*利用Symbol*/ const bar = Symbol('bar'); const snaf = Symbol('snaf'); export default class myClass{ // 公有方法 foo(baz) { this[bar](baz); } // 私有方法 [bar](baz) { return this[snaf] = baz; } // ... };
8. Private Eigenschaften
Wie private Methoden unterstützt ES6 keine privaten Eigenschaften. Derzeit gibt es einen Vorschlag, private Attribute zu Klassen hinzuzufügen. Die Methode besteht darin, # vor dem Attributnamen zu verwenden.
class Point { #x; constructor(x = 0) { #x = +x; // 写成 this.#x 亦可 } get x() { return #x } set x(value) { #x = +value } }
9. Dies zeigt auf
Wenn eine Klassenmethode dies enthält, verweist sie standardmäßig auf eine Instanz der Klasse.
Sobald diese Methode allein verwendet wird, wird wahrscheinlich ein Fehler gemeldet.
class Logger { printName(name = 'there') { this.print(`Hello ${name}`); } print(text) { console.log(text); } } const logger = new Logger(); const { printName } = logger; printName(); //上面代码中,printName方法中的this,默认指向Logger类的实例。但是,如果将这个方法提取出来单独使用,this会指向该方法运行时所在的环境,因为找不到print方法而导致报错。 /*解决方法是,在构造方法中绑定this,这样就不会找不到print方法了。*/ class Logger { constructor() { this.printName = this.printName.bind(this); } // ... }
10. Namensattribut
Da die ES6-Klasse im Wesentlichen nur eine Verpackungsschicht für den ES5-Konstruktor ist, werden viele Funktionen der Funktion von der Klasse geerbt , einschließlich Namensattribut.
Das Namensattribut gibt immer den Klassennamen zurück, der unmittelbar auf das Klassenschlüsselwort folgt.
class Point {} Point.name // "Point"
Verwandte Empfehlungen:
Detaillierte Erklärung des Super-Schlüsselworts in der ES6-Klasse
Klassenklasse in ES6-Javascript-Beispielen der Get- und Set-Verwendung
So verwenden Sie Klassenattribute in JS
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Klassenschlüsselworts in ES6. 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

Detaillierte Erläuterung der Modusfunktion in C++ In der Statistik bezieht sich der Modus auf den Wert, der in einem Datensatz am häufigsten vorkommt. In der Sprache C++ können wir den Modus in jedem Datensatz finden, indem wir eine Modusfunktion schreiben. Die Modusfunktion kann auf viele verschiedene Arten implementiert werden. Zwei der häufig verwendeten Methoden werden im Folgenden ausführlich vorgestellt. Die erste Methode besteht darin, eine Hash-Tabelle zu verwenden, um die Häufigkeit des Vorkommens jeder Zahl zu zählen. Zuerst müssen wir eine Hash-Tabelle definieren, in der jede Zahl der Schlüssel und die Häufigkeit des Vorkommens der Wert ist. Dann führen wir für einen bestimmten Datensatz aus

Das Windows-Betriebssystem ist eines der beliebtesten Betriebssysteme der Welt und seine neue Version Win11 hat viel Aufmerksamkeit erregt. Im Win11-System ist die Erlangung von Administratorrechten ein wichtiger Vorgang. Mit Administratorrechten können Benutzer weitere Vorgänge und Einstellungen auf dem System durchführen. In diesem Artikel wird ausführlich beschrieben, wie Sie Administratorrechte im Win11-System erhalten und wie Sie Berechtigungen effektiv verwalten. Im Win11-System werden Administratorrechte in zwei Typen unterteilt: lokaler Administrator und Domänenadministrator. Ein lokaler Administrator verfügt über vollständige Administratorrechte für den lokalen Computer

Detaillierte Erläuterung der Divisionsoperation in OracleSQL In OracleSQL ist die Divisionsoperation eine häufige und wichtige mathematische Operation, die zur Berechnung des Ergebnisses der Division zweier Zahlen verwendet wird. Division wird häufig in Datenbankabfragen verwendet. Daher ist das Verständnis der Divisionsoperation und ihrer Verwendung in OracleSQL eine der wesentlichen Fähigkeiten für Datenbankentwickler. In diesem Artikel werden die relevanten Kenntnisse über Divisionsoperationen in OracleSQL ausführlich erörtert und spezifische Codebeispiele als Referenz für die Leser bereitgestellt. 1. Divisionsoperation in OracleSQL

Detaillierte Erläuterung der Restfunktion in C++ In C++ wird der Restoperator (%) verwendet, um den Rest der Division zweier Zahlen zu berechnen. Es handelt sich um einen binären Operator, dessen Operanden ein beliebiger Ganzzahltyp (einschließlich char, short, int, long usw.) oder ein Gleitkommazahlentyp (z. B. float, double) sein kann. Der Restoperator gibt ein Ergebnis mit demselben Vorzeichen wie der Dividend zurück. Für die Restoperation von Ganzzahlen können wir beispielsweise den folgenden Code zur Implementierung verwenden: inta=10;intb=3;

Der Modulo-Operator (%) in PHP wird verwendet, um den Rest der Division zweier Zahlen zu ermitteln. In diesem Artikel werden wir die Rolle und Verwendung des Modulo-Operators im Detail besprechen und spezifische Codebeispiele bereitstellen, um den Lesern ein besseres Verständnis zu erleichtern. 1. Die Rolle des Modulo-Operators Wenn wir in der Mathematik eine ganze Zahl durch eine andere ganze Zahl dividieren, erhalten wir einen Quotienten und einen Rest. Wenn wir beispielsweise 10 durch 3 dividieren, ist der Quotient 3 und der Rest ist 1. Um diesen Rest zu ermitteln, wird der Modulo-Operator verwendet. 2. Verwendung des Modulo-Operators In PHP verwenden Sie das %-Symbol, um den Modul darzustellen

Als weit verbreitete Programmiersprache im Bereich der Softwareentwicklung ist die Sprache C für viele Programmieranfänger die erste Wahl. Das Erlernen der C-Sprache kann uns nicht nur dabei helfen, grundlegende Programmierkenntnisse zu erwerben, sondern auch unsere Problemlösungs- und Denkfähigkeiten verbessern. In diesem Artikel wird eine Roadmap zum Erlernen der C-Sprache im Detail vorgestellt, um Anfängern dabei zu helfen, ihren Lernprozess besser zu planen. 1. Grundlegende Grammatik lernen Bevor wir mit dem Erlernen der C-Sprache beginnen, müssen wir zunächst die grundlegenden Grammatikregeln der C-Sprache verstehen. Dazu gehören Variablen und Datentypen, Operatoren, Steueranweisungen (z. B. if-Anweisungen,

Detaillierte Erläuterung der Funktion system() des Linux-Systems Der Systemaufruf ist ein sehr wichtiger Teil des Linux-Betriebssystems. Er bietet eine Möglichkeit, mit dem Systemkernel zu interagieren. Unter diesen ist die Funktion system() eine der am häufigsten verwendeten Systemaufruffunktionen. In diesem Artikel wird die Verwendung der Funktion system() ausführlich vorgestellt und entsprechende Codebeispiele bereitgestellt. Grundlegende Konzepte von Systemaufrufen Systemaufrufe sind eine Möglichkeit für Benutzerprogramme, mit dem Betriebssystemkernel zu interagieren. Benutzerprogramme fordern das Betriebssystem an, indem sie Systemaufruffunktionen aufrufen

jQuery ist eine klassische JavaScript-Bibliothek, die in der Webentwicklung weit verbreitet ist. Sie vereinfacht Vorgänge wie die Verarbeitung von Ereignissen, die Bearbeitung von DOM-Elementen und die Durchführung von Animationen auf Webseiten. Bei der Verwendung von jQuery kommt es häufig vor, dass Sie den Klassennamen eines Elements ersetzen müssen. In diesem Artikel werden einige praktische Methoden und spezifische Codebeispiele vorgestellt. 1. Verwenden Sie die Methoden „removeClass()“ und „addClass()“. jQuery stellt die Methode „removeClass()“ zum Löschen bereit
