Heim > Web-Frontend > Front-End-Fragen und Antworten > Wie definiert ES6 Klassen?

Wie definiert ES6 Klassen?

青灯夜游
Freigeben: 2022-03-09 18:52:28
Original
1586 Leute haben es durchsucht

In ES6 wurde Klasse (Klasse) als Vorlage für Objekte eingeführt, und Klassen können über das Schlüsselwort „class“ definiert werden. Das Wesentliche einer Klasse ist die Funktion, die als syntaktischer Zucker betrachtet werden kann, wodurch das Schreiben von Objektprototypen klarer wird und der Syntax der objektorientierten Programmierung ähnlicher wird.

Wie definiert ES6 Klassen?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, ECMAScript Version 6, Dell G3-Computer.

ES6-Klasse

In ES6 wurde Klasse (Klasse) als Vorlage für Objekte eingeführt, und Klassen können über das Schlüsselwort „class“ definiert werden.

Die Essenz von Klasse ist Funktion.

Grundsätzlich kann die ES6-Klasse nur als Syntaxzucker betrachtet werden. Die meisten ihrer Funktionen können durch ES5 erreicht werden. Die neue Klassenschreibmethode macht die Schreibmethode des Objektprototyps klarer und ähnelt eher der Syntax der objektorientierten Programmierung . .

Grundlegende Verwendung

Klassendefinition

Klassenausdrücke können anonym oder benannt sein.

// 匿名类
let Example = class {
    constructor(a) {
        this.a = a;
    }
}
// 命名类
let Example = class Example {
    constructor(a) {
        this.a = a;
    }
}
Nach dem Login kopieren

Klassendeklaration

class Example {
    constructor(a) {
        this.a = a;
    }
}
Nach dem Login kopieren

Zu beachtende Punkte: Wiederholbare Deklarationen sind nicht zulässig.

class Example{}
class Example{}
// Uncaught SyntaxError: Identifier 'Example' has already been 
// declared
 
let Example1 = class{}
class Example{}
// Uncaught SyntaxError: Identifier 'Example' has already been 
// declared
Nach dem Login kopieren

Zu beachtende Punkte:

Klassendefinitionen werden nicht hochgestuft, was bedeutet, dass die Klasse vor dem Zugriff definiert werden muss, andernfalls wird ein Fehler gemeldet.

Methoden in der Klasse erfordern kein Funktionsschlüsselwort.

Kein Semikolon zwischen Methoden.

new Example(); 
class Example {}
Nach dem Login kopieren

Der Hauptteil der Klasse

Eigenschaften

Prototyp

In ES6 gibt es immer noch Prototypen, obwohl Methoden direkt aus der Klasse definiert werden können, werden die Methoden tatsächlich immer noch auf dem Prototyp definiert. Methode überschreiben/Methode während der Initialisierung hinzufügen instanziiert. ES6 legt fest, dass es innerhalb der Klasse nur statische Methoden und keine statischen Attribute gibt.

Example.prototype={
    //methods
}
Nach dem Login kopieren

Öffentliche Eigenschaften

Object.assign(Example.prototype,{
    //methods
})
Nach dem Login kopieren

Instanzeigenschaften

Instanzeigenschaften: Eigenschaften, die für das Instanzobjekt (dieses) definiert sind.

class Example {
// 新提案
    static a = 2;
}
// 目前可行写法
Example.b = 2;
Nach dem Login kopieren

Namensattribut

gibt den Klassennamen nach der Klasse zurück (sofern vorhanden).

class Example{}
Example.prototype.a = 2;
Nach dem Login kopieren

Methode

Konstruktormethode

Die Konstruktormethode ist die Standardmethode der Klasse und wird aufgerufen, wenn ein instanziiertes Objekt der Klasse erstellt wird.

class Example {
    a = 2;
    constructor () {
        console.log(this.a);
    }
}
Nach dem Login kopieren
Objekt zurückgeben

let Example=class Exam {
    constructor(a) {
        this.a = a;
    }
}
console.log(Example.name); // Exam
 
let Example=class {
    constructor(a) {
        this.a = a;
    }
}
console.log(Example.name); // Example
Nach dem Login kopieren

Statische Methode

class Example{
    constructor(){
      console.log('我是constructor');
    }
}
new Example(); // 我是constructor
Nach dem Login kopieren

Prototyp-Methode

class Test {
    constructor(){
        // 默认返回实例对象 this
    }
}
console.log(new Test() instanceof Test); // true
 
class Example {
    constructor(){
        // 指定返回对象
        return new Test();
    }
}
console.log(new Example() instanceof Example); // false
Nach dem Login kopieren

Instanzmethode

class Example{
    static sum(a, b) {
        console.log(a+b);
    }
}
Example.sum(1, 2); // 3
Nach dem Login kopieren

Instantiierung der Klasse

neu class muss über das neue Schlüsselwort instanziiert werden.

class Example {
    sum(a, b) {
        console.log(a + b);
    }
}
let exam = new Example();
exam.sum(1, 2); // 3
Nach dem Login kopieren

Instanziierte Objekte

Gemeinsam genutzte Prototypobjekte

class Example {
    constructor() {
        this.sum = (a, b) => {
            console.log(a + b);
        }
    }
}
Nach dem Login kopieren

[Verwandte Empfehlungen: Javascript-Video-Tutorial,

Web-Frontend

]

Das obige ist der detaillierte Inhalt vonWie definiert ES6 Klassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage