


Detaillierte Erläuterung neuer Funktionen und destrukturierende Zuweisung von Objekten in ES6 (Codebeispiel)
Dieser Artikel enthält eine detaillierte Erklärung (Codebeispiel) der neuen Funktionen und der Destrukturierungszuweisung von Objekten. Ich hoffe, dass er für Sie hilfreich ist.
ES6 verbessert die Verwendung von Objekten durch wörtliche Syntaxerweiterung, neue Methoden, verbesserte Prototypen usw. und vereinfacht den Datenextraktionsprozess von Objekten durch Dekonstruktion.
Literale Syntaxerweiterung
Die Verwendung von Literalen zum Erstellen von Objekten im ES6-Modus ist prägnanter. Bei Objekteigenschaften kann der Anfangswert der Eigenschaft abgekürzt und verwendet werden Berechneter Eigenschaftsname. Bei der Definition von Objektmethoden werden Doppelpunkte und Funktionsschlüsselwörter eliminiert:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Für wiederholt definierte Objektliteralattribute führt der strenge ES5-Modus Prüfungen auf doppelte Attribute durch und löst einen Fehler aus ES6 hat diesen Mechanismus entfernt, unabhängig vom strikten oder nicht strikten Modus, Attribute mit demselben Namen nehmen den letzten Wert an.
1 2 3 4 5 6 7 |
|
Neue Methoden
Ein Designziel, das seit ES5 verfolgt wird, besteht darin, die Erstellung neuer globaler Funktionen zu vermeiden und keine neuen Methoden für object.prototype zu erstellen.Um die Implementierung bestimmter Aufgaben zu erleichtern, führt ES6 einige neue Methoden für das globale Objektobjekt ein.
Object.is( )
ES6 führt die Methode Object.is() ein, um die ungenaue Berechnung des Gleichheitsoperators zu kompensieren.
Der Kongruenzoperator löst beim Vergleich keine Typumwandlung aus. Die Ergebnisse von Object.is() sind ähnlich, jedoch für +0 und -0 (zwei verschiedene Entitäten in der JS-Engine) und spezielle Die Vergleichsergebnisse von Die Werte NaN sind unterschiedlich, wie im Beispiel gezeigt:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Zusammenfassend führt Object.is() eine strengere Gleichheitsbeurteilung aller Werte durch. Ob Object.is() anstelle des Gleichheitsoperators (===) verwendet werden soll, hängt natürlich davon ab, ob sich diese Sonderfälle auf Ihren Code auswirken.
Object.assign( )
ES6 fügt Object.assign() hinzu, um den Mixin-Modus zu implementieren, bei dem ein Objekt die Eigenschaften und Methoden eines anderen Objekts empfängt. Beachten Sie, dass es empfangen und nicht vererbt wird. Beispielsweise wird das Objekt in Demo1 empfangen:
1 2 3 4 5 6 |
|
Vor Object.assign()
haben viele JS-Bibliotheken die Mischmethode mixin() angepasst, um die Objektkombination zu implementieren :
1 2 3 4 5 6 |
|
Es ist ersichtlich, dass die Methode mixin() die Zuweisungsoperation „=" verwendet und das Accessor-Attribut nicht kopieren kann führt nur den Zuweisungsvorgang aus. Die Empfängereigenschaften werden schließlich in Dateneigenschaften des empfangenden Objekts umgewandelt. Ein Beispiel lautet wie folgt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Object.assign()
Object.setPrototypeOf( )Normalerweise wird der Prototyp angegeben, wenn er über den Konstruktor oder Object.create() erstellt wird. ES6 fügt die Methode Object.setPrototypeOf() hinzu, um den Prototyp eines Objekts zu ändern.
Erstellen Sie beispielsweise ein Codiererobjekt, das das Personenobjekt erbt, und ändern Sie dann den Prototyp des Codiererobjekts:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
Der Objektprototyp wird in der internen proprietären Eigenschaft [[Prototyp]] gespeichert. ], rufen Sie Object.getPrototypeOf() auf, geben Sie den darin gespeicherten Wert zurück und rufen Sie Object.setPrototypeOf() auf, um seinen Wert zu ändern. Diese Methode stärkt den Betrieb von Objektprototypen. Der nächste Abschnitt konzentriert sich auf andere Möglichkeiten zum Betrieb von Prototypen.
Erweiterter ObjektprototypPrototyp ist die Grundlage der JS-Vererbung. ES6 hat viele Verbesserungen am Prototyp vorgenommen, um den Prototyp flexibler zu nutzen. Zusätzlich zum neuen Object.setPrototypeOf() zum Ändern des Prototyps wird auch das Super-Schlüsselwort eingeführt, um den Zugriff auf den Prototyp zu vereinfachen.
Super-Schlüsselwort
ES6 führt Super ein, um auf den Objektprototyp zuzugreifen Bequemer: Im vorherigen Abschnitt wurde vorgestellt, dass ES5 Object.getPrototypeOf() verwenden kann, um den Objektprototyp zurückzugeben. Ein Beispiel veranschaulicht die Zweckmäßigkeit von Super. Wenn ein Objekt Prototypmethoden wiederverwenden und seine eigenen Methoden neu definieren muss, lauten die beiden Implementierungsmethoden wie folgt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
Rufen Sie in der getName-Methode des coder1-Objekts (this) auf. Es ist auch erforderlich, sicherzustellen, dass es verwendet wird. Die Prototypmethode ist relativ kompliziert, und bei der Mehrfachvererbung treten rekursive Aufrufstapel-Überlauffehler auf. Die direkte Verwendung von Super ist jedoch sehr einfach und sicher.
Beachten Sie, dass Super in der Abkürzungsmethode verwendet werden muss, da sonst ein Fehler gemeldet wird. Beispielsweise weist der folgende Code beim Ausführen einen Syntaxfehler auf:
1 2 3 4 |
|
Weil im Beispiel getName wird Ein von der anonymen Funktion definiertes Attribut. Im aktuellen Kontext ist es illegal, eine Super-Referenz aufzurufen. Wenn Sie es nicht verstehen, können Sie sich die abhängigen Objekte der Methode genauer ansehen.
Untergeordnete Objekte von MethodenVor ES6 waren „Methoden“ Objekteigenschaften mit Funktionen und nicht mit Daten. In ES6 wurden Methoden offiziell so definiert, dass sie [[HomeObject]] innerhalb eines Attributs haben Funktionen. Das Attribut
[[HomeObject]] speichert das untergeordnete Objekt der aktuellen Methode, zum Beispiel:
1 2 3 4 5 6 7 8 9 |
|
coder5 Der Attributwert [[HomeObject]] der Methode sayName() des Objekts ist coder5, und die definierte Funktion shareName() weist es dem Objekt nicht zu, sodass seine [[HomeObject]]-Eigenschaft nicht definiert ist, was bei Verwendung von Super wichtig ist.
Super besteht darin, Object.getPrototypeOf() für das Attribut [[HomeObject]] aufzurufen, um die Prototypreferenz zu erhalten, dann den Prototyp zu durchsuchen, um die Funktion mit demselben Namen zu erhalten, und schließlich diese Bindung so festzulegen, dass sie aufgerufen wird entsprechende Methode.
Destrukturierende ZuweisungES6 bietet eine neue Funktion für Array- und Objektliterale – Destrukturierung, die den Prozess der Datenextraktion vereinfachen und homogenen Code reduzieren kann. Ein grundlegendes Syntaxbeispiel für die Destrukturierung lautet wie folgt:
1 2 3 4 5 6 |
|
注意在这段代码中,user.name 存储在与对象属性名同名的 name 变量中。
默认值
如果解构时变量名称与对象属性名不同,即在对象中不存在,那么这个变量会默认为undefined:
1 2 3 4 5 6 |
|
非同名变量赋值
非同名变量的默认值为undefined,但更多时候是需要为其赋值的,并且会将对象属性值赋值给非同名变量。ES6 为此提供了扩展语法,与对象字面量属性初始化程序很像:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
可以看出这种语法实际与对象字面量相反,赋值名在冒号左,变量名在右,并且解构赋值时,只是更新了默认值,不能覆盖对象原有的属性值。
嵌套解构
解构嵌套对象的语法仍然类似对象字面量,使用花括号继续查找下层结构:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
对象类别
ES6 规范定义了对象的类别,特别是针对浏览器这样的执行环境。
普通(Ordinary)对象
具有 JS 对象所有的默认内部行为
特异(Exotic)对象
具有某些与默认行为不符的内部行为
标准(Standard)对象
ES6 规范中定义的对象
可以是普通对象或特异对象,例如 Date、Array 等
内建对象
脚本开始执行时存在于 JS 执行环境中的对象
所有标准对象都是内建对象
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung neuer Funktionen und destrukturierende Zuweisung von Objekten in ES6 (Codebeispiel). 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



So implementieren Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem. Einführung: Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Spracherkennungstechnologie zu einem wichtigen Bestandteil des Bereichs der künstlichen Intelligenz geworden. Das auf WebSocket und JavaScript basierende Online-Spracherkennungssystem zeichnet sich durch geringe Latenz, Echtzeit und plattformübergreifende Eigenschaften aus und hat sich zu einer weit verbreiteten Lösung entwickelt. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem implementieren.

WebSocket und JavaScript: Schlüsseltechnologien zur Realisierung von Echtzeit-Überwachungssystemen Einführung: Mit der rasanten Entwicklung der Internet-Technologie wurden Echtzeit-Überwachungssysteme in verschiedenen Bereichen weit verbreitet eingesetzt. Eine der Schlüsseltechnologien zur Erzielung einer Echtzeitüberwachung ist die Kombination von WebSocket und JavaScript. In diesem Artikel wird die Anwendung von WebSocket und JavaScript in Echtzeitüberwachungssystemen vorgestellt, Codebeispiele gegeben und deren Implementierungsprinzipien ausführlich erläutert. 1. WebSocket-Technologie

Einführung in die Verwendung von JavaScript und WebSocket zur Implementierung eines Online-Bestellsystems in Echtzeit: Mit der Popularität des Internets und dem Fortschritt der Technologie haben immer mehr Restaurants damit begonnen, Online-Bestelldienste anzubieten. Um ein Echtzeit-Online-Bestellsystem zu implementieren, können wir JavaScript und WebSocket-Technologie verwenden. WebSocket ist ein Vollduplex-Kommunikationsprotokoll, das auf dem TCP-Protokoll basiert und eine bidirektionale Kommunikation zwischen Client und Server in Echtzeit realisieren kann. Im Echtzeit-Online-Bestellsystem, wenn der Benutzer Gerichte auswählt und eine Bestellung aufgibt

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript. Im heutigen digitalen Zeitalter müssen immer mehr Unternehmen und Dienste Online-Reservierungsfunktionen bereitstellen. Es ist von entscheidender Bedeutung, ein effizientes Online-Reservierungssystem in Echtzeit zu implementieren. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Reservierungssystem implementieren, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist WebSocket? WebSocket ist eine Vollduplex-Methode für eine einzelne TCP-Verbindung.

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Einführung: Heutzutage ist die Genauigkeit von Wettervorhersagen für das tägliche Leben und die Entscheidungsfindung von großer Bedeutung. Mit der Weiterentwicklung der Technologie können wir genauere und zuverlässigere Wettervorhersagen liefern, indem wir Wetterdaten in Echtzeit erhalten. In diesem Artikel erfahren Sie, wie Sie mit JavaScript und WebSocket-Technologie ein effizientes Echtzeit-Wettervorhersagesystem aufbauen. In diesem Artikel wird der Implementierungsprozess anhand spezifischer Codebeispiele demonstriert. Wir

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

Verwendung: In JavaScript wird die Methode insertBefore() verwendet, um einen neuen Knoten in den DOM-Baum einzufügen. Diese Methode erfordert zwei Parameter: den neuen Knoten, der eingefügt werden soll, und den Referenzknoten (d. h. den Knoten, an dem der neue Knoten eingefügt wird).

JavaScript ist eine in der Webentwicklung weit verbreitete Programmiersprache, während WebSocket ein Netzwerkprotokoll für die Echtzeitkommunikation ist. Durch die Kombination der leistungsstarken Funktionen beider können wir ein effizientes Echtzeit-Bildverarbeitungssystem erstellen. In diesem Artikel wird erläutert, wie dieses System mithilfe von JavaScript und WebSocket implementiert wird, und es werden spezifische Codebeispiele bereitgestellt. Zunächst müssen wir die Anforderungen und Ziele des Echtzeit-Bildverarbeitungssystems klären. Angenommen, wir haben ein Kameragerät, das Bilddaten in Echtzeit sammeln kann
