ES6: Umgehen des neuen Schlüsselworts für den Aufruf von Klassenkonstruktoren
In ES6 dienen Klassen nicht nur als Blaupausen für Objekte, sondern verkörpern auch deren Konstruktoren . Die Funktion „constructor()“ dient als Klassenkörper und ihre Ausführung wird beim Aufruf der Klasse ausgelöst. Der Versuch, eine Klasse ohne das erforderliche neue Schlüsselwort aufzurufen, führt jedoch häufig zur Fehlermeldung „Eine Klasse kann nicht als Funktion aufgerufen werden“.
Den Konstruktorimperativ verstehen
Klassen sind von Natur aus an den neuen Operator gebunden, der sicherstellt, dass bei der Instanziierung eine neue Instanz der Klasse erstellt wird. Das Aufrufen einer Klasse ohne „New“ verstößt gegen dieses Entwurfsprinzip und führt zu dem oben genannten Fehler.
Alternative Lösungen
Wenn das gewünschte Verhalten darin besteht, den Klassenaufruf mit oder ohne „New“ zu ermöglichen Es gibt mehrere Alternativen:
1. Verwenden einer regulären Funktion anstelle einer Klasse
Eine reguläre Funktion kann klassenähnliches Verhalten ohne die neue Anforderung nachahmen. Damit kann immer noch instanzähnliches Verhalten erzwungen werden, aber es fehlen die Kapselungs- und Vererbungsfunktionen von Klassen.
<code class="js">function Foo(x) { this.x = x; this.hello = function() { return this.x; }; }</code>
2. Erzwingen des neuen Schlüsselworts
Wenn der beabsichtigte Zweck darin besteht, die Klasse immer mit „new“ aufzurufen, sind keine Problemumgehungen erforderlich. Halten Sie sich einfach an das empfohlene Konstruktor-Aufrufmuster:
<code class="js">(new Foo("world")).hello(); // "hello world"</code>
3. Die Klasse mit einer regulären Funktion umschließen
Dieser Ansatz bietet die Flexibilität, die Klasse mit oder ohne new aufzurufen und gleichzeitig die Vorteile der Verwendung von Klassen beizubehalten. Die Wrapping-Funktion ruft den Klassenkonstruktor immer mit new.
<code class="js">class Foo { constructor(x) { this.x = x; } hello() { return `hello ${this.x}`; } } var _old = Foo; Foo = function(...args) { return new _old(...args) }; Foo("world").hello(); // "hello world" (new Foo("world")).hello(); // Also works</code>auf
Das obige ist der detaillierte Inhalt vonWie rufe ich ES6-Klassen ohne das Schlüsselwort „new' auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Detaillierte Erläuterung der Methode für JavaScript -Zeichenfolge und FAQ In diesem Artikel werden zwei Möglichkeiten untersucht, wie String -Zeichen in JavaScript ersetzt werden: Interner JavaScript -Code und interne HTML für Webseiten. Ersetzen Sie die Zeichenfolge im JavaScript -Code Die direkteste Möglichkeit ist die Verwendung der Ersatz () -Methode: str = str.replace ("find", "ersetzen"); Diese Methode ersetzt nur die erste Übereinstimmung. Um alle Übereinstimmungen zu ersetzen, verwenden Sie einen regulären Ausdruck und fügen Sie das globale Flag G hinzu:: STR = Str.Replace (/fi

Einfache JavaScript -Funktionen werden verwendet, um zu überprüfen, ob ein Datum gültig ist. Funktion isvaliddate (s) { var bits = ssplit ('/'); var d = neues Datum (Bits [2] '/' Bits [1] '/' Bits [0]); return !! (d && (d.getMonth () 1) == Bits [1] && d.getDate () == Nummer (Bits [0])); } //prüfen var

In diesem Artikel wird erläutert, wie JQuery verwendet wird, um die inneren Rand- und Randwerte von DOM -Elementen zu erhalten und festzulegen, insbesondere die spezifischen Orte des äußeren Randes und der inneren Ränder des Elements. Während es möglich ist, die inneren und äußeren Ränder eines Elements mit CSS einzustellen, kann es schwierig sein, genaue Werte zu erhalten. // aufstellen $ ("Div.Header"). CSS ("Margin", "10px"); $ ("Div.Header"). CSS ("Padding", "10px"); Sie könnten denken, dieser Code ist

In diesem Artikel werden zehn außergewöhnliche JQuery -Registerkarten und Akkordeons untersucht. Der wichtigste Unterschied zwischen Registerkarten und Akkordeons liegt in der angezeigten und versteckten Inhaltsplatten. Lassen Sie uns mit diesen zehn Beispielen befassen. Verwandte Artikel: 10 JQuery Registerkarte Plugins

Entdecken Sie zehn außergewöhnliche JQuery -Plugins, um die Dynamik und die visuelle Anziehungskraft Ihrer Website zu verbessern! Diese kuratierte Sammlung bietet verschiedene Funktionen, von Bildanimation bis hin zu interaktiven Galerien. Lassen Sie uns diese leistungsstarken Tools untersuchen: Verwandte Beiträge: 1

HTTP-Console ist ein Knotenmodul, mit dem Sie eine Befehlszeilenschnittstelle zum Ausführen von HTTP-Befehlen erhalten. Es eignet sich hervorragend zum Debuggen und dem genauen Sehen, was mit Ihren HTTP

Dieses Tutorial zeigt Ihnen, wie Sie eine benutzerdefinierte Google -Such -API in Ihr Blog oder Ihre Website integrieren und ein raffinierteres Sucherlebnis bieten als Standard -WordPress -Themen -Suchfunktionen. Es ist überraschend einfach! Sie können die Suche auf y beschränken

Mit dem folgenden JQuery -Code -Snippet können Scrollbars hinzugefügt werden, wenn der Div -Inhalt den Containerelementbereich überschreitet. (Keine Demonstration, bitte kopieren Sie es direkt nach Firebug) // d = Dokument // W = Fenster // $ = jQuery var contentArea = $ (this), wintop = contentArea.scrolltop (), docheight = $ (d) .height (), winHeight = $ (w) .height (), Divheight = $ ('#c


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

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

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

Dreamweaver CS6
Visuelle Webentwicklungstools
