Rufen Sie den Klassennamen eines Objekts in JavaScript ab

Sahil Bhosale 12 Oktober 2023
Rufen Sie den Klassennamen eines Objekts in JavaScript ab

Ein Konstruktor wird in der objektorientierten Programmierung automatisch innerhalb der Klasse erstellt, wenn wir eine Klasse definieren. Es ist in der Klasse vorhanden, aber nicht sichtbar. Es wird nur erstellt, wenn ein Programmierer es nicht explizit definiert. Dieser Konstruktor wird als Standardkonstruktor bezeichnet.

Wir sind daran interessiert, Konstruktoren zu verstehen, da die Konstruktoren denselben Namen wie der Klassenname haben. Daher ist es für uns einfach, den Klassennamen eines Objekts in JavaScript anhand seines Konstruktornamens abzurufen.

Es spielt keine Rolle, ob der Konstruktor ein Standardkonstruktor ist oder Sie ihn erstellen (der Programmierer); Der Name des Konstruktors ist immer derselbe wie sein Klassenname.

Ermitteln des Klassennamens eines Objekts mit der Funktion constructor in JavaScript

Um ein Objekt einer Klasse zu erstellen, müssen wir zuerst seinen Konstruktor aufrufen. Nachdem wir den Konstruktor aufgerufen haben, speichern wir seine Referenz in einer Variablen, damit wir später mit diesem Objekt machen können, was wir wollen. Lassen Sie uns dies anhand eines Beispiels verstehen.

Hier haben wir eine leere Klasse namens Person. Wir erstellen ein Objekt dieser Klasse mit dem Schlüsselwort new und nennen seinen Standardkonstruktor Person(). Dann speichern wir es in einer Variablen namens obj.

Nachdem wir nun ein Objekt einer Klasse Person erstellt haben, wollen wir den Klassennamen des Objekts mit Hilfe seines Konstruktors ermitteln.

Um den Namen eines Konstruktors zu erhalten, können wir eine eingebaute Funktion namens constructor verwenden, die in JavaScript vorhanden ist. Es wird eine Funktion zurückgegeben. Um den spezifischen Klassennamen zu erhalten, müssen wir die Eigenschaft name der Funktion constructor verwenden.

Dies wird im folgenden Code-Snippet gezeigt.

class Person {}

var obj = new Person();
console.log(obj.constructor.name);

Ausgabe:

Person

Sie können auch eine Funktion innerhalb einer Klasse erstellen, die die obige constructor-Funktion zurückgibt. Und nachdem Sie ein Objekt dieser Klasse erstellt haben, können Sie diese Funktion beliebig oft aufrufen und den Klassennamen dieses Objekts abrufen.

Dies wird im folgenden Code-Snippet gezeigt.

class Person {
  getClassName() {
    return this.constructor.name;
  }
}

Hier müssen wir ein Schlüsselwort this verwenden, das auf das aktuelle Objekt verweist, für das die Methode getClassName() aufgerufen wird, und seinen Klassennamen zurückgibt.

Die einzige Sorge dabei ist, dass sich der Name des Konstruktors nach der Verkleinerung ändert, wenn Sie das JavaScript verkleinern. Und wenn Sie die Funktion getClassName aufgerufen haben, gibt sie einen anderen Klassennamen zurück, der nach der Minimierung vorhanden sein wird, und nicht Person.

Außerdem wird die Eigenschaft name unter IE9 nicht unterstützt. Dies ist kein großes Problem, da die meisten Benutzer moderne Browser wie Chrome und Firefox verwenden.

Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

Verwandter Artikel - JavaScript Object