Untersuchung Statischer Eigenschaften in JavaScript
In der Programmierung ermöglichen statische Eigenschaften das Vorhalten gemeinsamer Informationen für alle Instanzen einer Klasse und sind daher ideal für konsistente Daten.
Was sind statische Eigenschaften?
Statische Eigenschaften gehören zur Klasse selbst und nicht zu einer bestimmten Instanz der Klasse. Das bedeutet, dass statische Eigenschaften von allen Instanzen gemeinsam genutzt werden und direkt über die Klasse aufgerufen werden können, ohne dass ein Objekt instanziiert werden muss. Sie werden häufig für Hilfsfunktionen, Konstanten oder Daten verwendet, die für alle Instanzen einer Klasse gemeinsam sein sollen.
Stellen Sie sich ein Unternehmen vor, in dem jeder Mitarbeiter (eine Instanz einer Klasse) eigene persönliche Informationen (Name, Position) hat, aber die Firmenadresse (eine statische Eigenschaft) für alle Mitarbeiter gleich ist. Die Adresse gehört zum Unternehmen selbst, nicht zu einem einzelnen Mitarbeiter.
Deklaration und Verwendung statischer Eigenschaften
Um eine statische Eigenschaft zu deklarieren, wird das Schlüsselwort static
innerhalb der Klasse verwendet. Statische Eigenschaften können nur über den Klassennamen und nicht über Instanzen der Klasse aufgerufen werden.
1234567891011121314151617181920class Company { static headquarters = '123 Main St'; // Static property constructor(name) { this.name = name; // Instance property } getCompanyInfo() { return `${this.name} is located at ${Company.headquarters}`; } } const google = new Company('Google'); console.log(google.getCompanyInfo()); // Output: Google is located at 123 Main St const amazon = new Company('Amazon'); console.log(amazon.getCompanyInfo()); // Output: Amazon is located at 123 Main St // Accessing the static property directly from the class console.log(Company.headquarters); // Output: 123 Main St
In diesem Beispiel wird die Eigenschaft headquarters
von allen Instanzen der Klasse Company
gemeinsam genutzt. Sowohl die Instanzen Google
als auch Amazon
verweisen auf dieselbe Adresse des Firmensitzes. Statische Eigenschaften werden direkt über den Klassennamen (Company.headquarters
) und nicht über Instanzen der Klasse aufgerufen.
Wie statische Eigenschaften unter allen Instanzen einer Klasse geteilt werden
Da statische Eigenschaften an die Klasse selbst gebunden sind, werden sie nicht für jede Instanz kopiert. Alle Instanzen der Klasse verweisen auf dieselbe statische Eigenschaft, was eine effiziente Möglichkeit darstellt, Daten zu speichern, die sich nicht pro Instanz ändern müssen.
Beispiel: Zähler für die Anzahl erstellter Instanzen
Angenommen, wir möchten verfolgen, wie viele Instanzen einer Klasse erstellt wurden. Wir können eine statische Eigenschaft verwenden, um die Anzahl der Instanzen zu speichern und sie jedes Mal zu erhöhen, wenn eine neue Instanz erstellt wird.
123456789101112131415161718192021222324class User { static count = 0; // Static property to track the number of users constructor(name) { this.name = name; User.count++; // Increment static property every time a new user is created } getUserInfo() { return `${this.name} is user number ${User.count}`; } } const user1 = new User('John'); const user2 = new User('Jane'); const user3 = new User('Alice'); // Accessing the static property directly from the class console.log(User.count); // Output: 3 (number of users created) // Each instance can see the total count of users console.log(user1.getUserInfo()); // Output: John is user number 3 console.log(user2.getUserInfo()); // Output: Jane is user number 3 console.log(user3.getUserInfo()); // Output: Alice is user number 3
In diesem Beispiel wird die statische Eigenschaft count
jedes Mal erhöht, wenn ein neuer Benutzer erstellt wird. Alle Instanzen der Klasse User
teilen sich denselben Wert von count
, da diese Eigenschaft zur Klasse selbst gehört.
Vorteile von statischen Eigenschaften
Da statische Eigenschaften zwischen Instanzen geteilt werden, entfällt die Notwendigkeit, Daten zu duplizieren, was den Code übersichtlicher und effizienter macht. Sie eignen sich besonders gut zur Speicherung von Informationen, die für alle Instanzen gleich sind, wie beispielsweise Konfigurationseinstellungen oder Konstanten, und tragen so zur Konsistenz im gesamten Code bei.
Praxisbeispiel: Anwendungskonfiguration
In einer realen Anwendung kann ein Konfigurationsobjekt verwendet werden, das gemeinsame Einstellungen für die gesamte Anwendung speichert. Statische Eigenschaften sind für solche Anwendungsfälle eine ausgezeichnete Wahl.
12345678910111213141516171819202122class AppConfig { static appName = 'QuirkApp Solutions'; // Shared configuration setting static version = '1.3.14'; // Shared configuration setting constructor(user) { this.user = user; } getUserConfig() { return `${this.user} is using ${AppConfig.appName} version ${AppConfig.version}`; } } const user1 = new AppConfig('Alice'); const user2 = new AppConfig('Bob'); console.log(user1.getUserConfig()); // Output: Alice is using QuirkApp Solutions version 1.3.14 console.log(user2.getUserConfig()); // Output: Bob is using QuirkApp Solutions version 1.3.14 // Accessing static properties directly from the class console.log(AppConfig.appName); // Output: QuirkApp Solutions console.log(AppConfig.version); // Output: 1.3.14
In diesem Beispiel werden der App-Name und die Version von allen Benutzern der Anwendung gemeinsam genutzt. Die statischen Eigenschaften appName
und version
gehören zur Klasse und werden nicht für jede Instanz repliziert.
1. Was ist eine statische Eigenschaft?
2. Wie greift man auf eine statische Eigenschaft zu?
3. Was gibt console.log(User.count);
im folgenden Code aus?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you explain the difference between static and instance properties?
When should I use static properties instead of instance properties?
Are there any limitations or best practices for using static properties?
Awesome!
Completion rate improved to 2.22
Untersuchung Statischer Eigenschaften in JavaScript
Swipe um das Menü anzuzeigen
In der Programmierung ermöglichen statische Eigenschaften das Vorhalten gemeinsamer Informationen für alle Instanzen einer Klasse und sind daher ideal für konsistente Daten.
Was sind statische Eigenschaften?
Statische Eigenschaften gehören zur Klasse selbst und nicht zu einer bestimmten Instanz der Klasse. Das bedeutet, dass statische Eigenschaften von allen Instanzen gemeinsam genutzt werden und direkt über die Klasse aufgerufen werden können, ohne dass ein Objekt instanziiert werden muss. Sie werden häufig für Hilfsfunktionen, Konstanten oder Daten verwendet, die für alle Instanzen einer Klasse gemeinsam sein sollen.
Stellen Sie sich ein Unternehmen vor, in dem jeder Mitarbeiter (eine Instanz einer Klasse) eigene persönliche Informationen (Name, Position) hat, aber die Firmenadresse (eine statische Eigenschaft) für alle Mitarbeiter gleich ist. Die Adresse gehört zum Unternehmen selbst, nicht zu einem einzelnen Mitarbeiter.
Deklaration und Verwendung statischer Eigenschaften
Um eine statische Eigenschaft zu deklarieren, wird das Schlüsselwort static
innerhalb der Klasse verwendet. Statische Eigenschaften können nur über den Klassennamen und nicht über Instanzen der Klasse aufgerufen werden.
1234567891011121314151617181920class Company { static headquarters = '123 Main St'; // Static property constructor(name) { this.name = name; // Instance property } getCompanyInfo() { return `${this.name} is located at ${Company.headquarters}`; } } const google = new Company('Google'); console.log(google.getCompanyInfo()); // Output: Google is located at 123 Main St const amazon = new Company('Amazon'); console.log(amazon.getCompanyInfo()); // Output: Amazon is located at 123 Main St // Accessing the static property directly from the class console.log(Company.headquarters); // Output: 123 Main St
In diesem Beispiel wird die Eigenschaft headquarters
von allen Instanzen der Klasse Company
gemeinsam genutzt. Sowohl die Instanzen Google
als auch Amazon
verweisen auf dieselbe Adresse des Firmensitzes. Statische Eigenschaften werden direkt über den Klassennamen (Company.headquarters
) und nicht über Instanzen der Klasse aufgerufen.
Wie statische Eigenschaften unter allen Instanzen einer Klasse geteilt werden
Da statische Eigenschaften an die Klasse selbst gebunden sind, werden sie nicht für jede Instanz kopiert. Alle Instanzen der Klasse verweisen auf dieselbe statische Eigenschaft, was eine effiziente Möglichkeit darstellt, Daten zu speichern, die sich nicht pro Instanz ändern müssen.
Beispiel: Zähler für die Anzahl erstellter Instanzen
Angenommen, wir möchten verfolgen, wie viele Instanzen einer Klasse erstellt wurden. Wir können eine statische Eigenschaft verwenden, um die Anzahl der Instanzen zu speichern und sie jedes Mal zu erhöhen, wenn eine neue Instanz erstellt wird.
123456789101112131415161718192021222324class User { static count = 0; // Static property to track the number of users constructor(name) { this.name = name; User.count++; // Increment static property every time a new user is created } getUserInfo() { return `${this.name} is user number ${User.count}`; } } const user1 = new User('John'); const user2 = new User('Jane'); const user3 = new User('Alice'); // Accessing the static property directly from the class console.log(User.count); // Output: 3 (number of users created) // Each instance can see the total count of users console.log(user1.getUserInfo()); // Output: John is user number 3 console.log(user2.getUserInfo()); // Output: Jane is user number 3 console.log(user3.getUserInfo()); // Output: Alice is user number 3
In diesem Beispiel wird die statische Eigenschaft count
jedes Mal erhöht, wenn ein neuer Benutzer erstellt wird. Alle Instanzen der Klasse User
teilen sich denselben Wert von count
, da diese Eigenschaft zur Klasse selbst gehört.
Vorteile von statischen Eigenschaften
Da statische Eigenschaften zwischen Instanzen geteilt werden, entfällt die Notwendigkeit, Daten zu duplizieren, was den Code übersichtlicher und effizienter macht. Sie eignen sich besonders gut zur Speicherung von Informationen, die für alle Instanzen gleich sind, wie beispielsweise Konfigurationseinstellungen oder Konstanten, und tragen so zur Konsistenz im gesamten Code bei.
Praxisbeispiel: Anwendungskonfiguration
In einer realen Anwendung kann ein Konfigurationsobjekt verwendet werden, das gemeinsame Einstellungen für die gesamte Anwendung speichert. Statische Eigenschaften sind für solche Anwendungsfälle eine ausgezeichnete Wahl.
12345678910111213141516171819202122class AppConfig { static appName = 'QuirkApp Solutions'; // Shared configuration setting static version = '1.3.14'; // Shared configuration setting constructor(user) { this.user = user; } getUserConfig() { return `${this.user} is using ${AppConfig.appName} version ${AppConfig.version}`; } } const user1 = new AppConfig('Alice'); const user2 = new AppConfig('Bob'); console.log(user1.getUserConfig()); // Output: Alice is using QuirkApp Solutions version 1.3.14 console.log(user2.getUserConfig()); // Output: Bob is using QuirkApp Solutions version 1.3.14 // Accessing static properties directly from the class console.log(AppConfig.appName); // Output: QuirkApp Solutions console.log(AppConfig.version); // Output: 1.3.14
In diesem Beispiel werden der App-Name und die Version von allen Benutzern der Anwendung gemeinsam genutzt. Die statischen Eigenschaften appName
und version
gehören zur Klasse und werden nicht für jede Instanz repliziert.
1. Was ist eine statische Eigenschaft?
2. Wie greift man auf eine statische Eigenschaft zu?
3. Was gibt console.log(User.count);
im folgenden Code aus?
Danke für Ihr Feedback!