Ich bin nicht klar über Klassenausdrücke und Klassendeklarationen. Bitte hilf mir, das Unterschiedliche zwischen ihnen zu verstehen.Klassendeklarationen und Klassenausdrücke in ES6
Dank
Ich bin nicht klar über Klassenausdrücke und Klassendeklarationen. Bitte hilf mir, das Unterschiedliche zwischen ihnen zu verstehen.Klassendeklarationen und Klassenausdrücke in ES6
Dank
Es ist relativ einfach.
In "Class Expressions", auf eine Variable der Klasse Objekt NamedFoo
wird Foo
, wie so genannt, zugeordnet:
var Foo = class NamedFoo {
constructor() {}
whoIsThere() {
return NamedFoo.name;
}
}
In "Klassendeklarationen", die Klasse NamedFoo
selbst allein erklärt wird, so wie:
class NamedFoo {
constructor() {}
whoIsThere() {
return NamedFoo.name;
}
}
Der Unterschied hier auch sein, dass, wenn es eine „Klasse-Erklärung“ ist, können Sie die Klasse verweisen können NamedFoo
unter Verwendung jedoch, wenn es sich um eine „Klasse Exp ist In diesem Fall können Sie die Klasse nur anhand der Variablen referenzieren, der sie zugewiesen wurde, in diesem Fall Foo
.
Ich hoffe, dass hilft!
Es könnte sich lohnen, klarzustellen, dass die Variablenzuweisung nichts mit dem Klassenausdruck selbst zu tun hat. Es ist nur ein Anwendungsfall, in dem ein Klassenausdruck auftreten kann. Wie der Name schon sagt, kann ein Klasse * Ausdruck * überall dort verwendet werden, wo ein Ausdruck verwendet wird. Z.B. 'foo (Klasse {})'. –
@FelixKling hat einen festen Punkt, "Klassenausdrücke" sind tatsächlich nicht nur an Variablenzuweisungen gebunden. –
Kennen Sie den Unterschied zwischen Funktionsdeklarationen und Funktionsausdrücken? Derselbe Unterschied (außer Klassen werden nie gehisst). –