Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Exploration des Propriétés Statiques en JavaScript | Maîtrise des Classes et de l'Héritage en JavaScript
Maîtrise Avancée de JavaScript

bookExploration des Propriétés Statiques en JavaScript

En programmation, les propriétés statiques permettent à des informations partagées d’exister entre toutes les instances d’une classe, ce qui les rend idéales pour des données cohérentes.

Que sont les propriétés statiques ?

Les propriétés statiques appartiennent à la classe elle-même plutôt qu’à une instance particulière de la classe. Cela signifie que les propriétés statiques sont partagées entre toutes les instances et peuvent être accessibles directement depuis la classe sans avoir besoin d’instancier un objet. Elles sont souvent utilisées pour des fonctions utilitaires, des constantes ou des données devant être partagées entre toutes les instances d’une classe.

Considérer une entreprise où chaque employé (une instance d’une classe) possède ses propres informations personnelles (nom, poste), mais où l’adresse de l’entreprise (une propriété statique) est la même pour tous les employés. L’adresse appartient à l’entreprise elle-même, et non à un employé individuel.

Comment déclarer et utiliser des propriétés statiques

Pour déclarer une propriété statique, utiliser le mot-clé static à l’intérieur de la classe. Les propriétés statiques ne peuvent être accessibles qu’en utilisant le nom de la classe, et non à partir des instances de la classe.

1234567891011121314151617181920
class 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
copy

Dans cet exemple, la propriété headquarters est partagée entre toutes les instances de la classe Company. Les instances Google et Amazon font toutes deux référence à la même adresse du siège social. Les propriétés statiques sont accessibles directement en utilisant le nom de la classe (Company.headquarters), et non via les instances de la classe.

Comment les propriétés statiques sont partagées entre toutes les instances d'une classe

Étant donné que les propriétés statiques sont attachées à la classe elle-même, elles ne sont pas copiées pour chaque instance. Toutes les instances de la classe font référence à la même propriété statique, ce qui constitue un moyen efficace de stocker des données qui n'ont pas besoin d'être modifiées pour chaque instance.

Exemple : Compteur du nombre d'instances créées

Supposons que nous souhaitions suivre le nombre d'instances d'une classe qui ont été créées. Nous pouvons utiliser une propriété statique pour stocker le nombre d'instances et l'incrémenter à chaque création d'une nouvelle instance.

123456789101112131415161718192021222324
class 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
copy

Dans cet exemple, chaque fois qu'un nouvel utilisateur est créé, la propriété statique count est incrémentée. Toutes les instances de la classe User partagent la même valeur de count, car elle appartient à la classe elle-même.

Avantages des propriétés statiques

Étant donné que les propriétés statiques sont partagées entre les instances, il n'est pas nécessaire de dupliquer les données, ce qui rend le code plus clair et plus efficace. Elles sont particulièrement utiles pour stocker des informations identiques pour toutes les instances, telles que des paramètres de configuration ou des constantes, contribuant ainsi à maintenir la cohérence dans l'ensemble du code.

Exemple concret : Configuration d'une application

Dans un contexte réel, il est possible d'utiliser un objet de configuration d'application pour stocker des paramètres partagés à travers l'application. Les propriétés statiques constituent un choix pertinent pour ce type de cas d'utilisation.

12345678910111213141516171819202122
class 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
copy

Dans cet exemple, le nom de l'application et la version sont partagés entre tous les utilisateurs de l'application. Les propriétés statiques appName et version appartiennent à la classe et ne sont pas dupliquées pour chaque instance.

1. Qu'est-ce qu'une propriété statique ?

2. Comment accéder à une propriété statique ?

3. Dans le code suivant, quelle sera la sortie de console.log(User.count); ?

question mark

Qu'est-ce qu'une propriété statique ?

Select the correct answer

question mark

Comment accéder à une propriété statique ?

Select the correct answer

question mark

Dans le code suivant, quelle sera la sortie de console.log(User.count); ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 11

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Suggested prompts:

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

bookExploration des Propriétés Statiques en JavaScript

Glissez pour afficher le menu

En programmation, les propriétés statiques permettent à des informations partagées d’exister entre toutes les instances d’une classe, ce qui les rend idéales pour des données cohérentes.

Que sont les propriétés statiques ?

Les propriétés statiques appartiennent à la classe elle-même plutôt qu’à une instance particulière de la classe. Cela signifie que les propriétés statiques sont partagées entre toutes les instances et peuvent être accessibles directement depuis la classe sans avoir besoin d’instancier un objet. Elles sont souvent utilisées pour des fonctions utilitaires, des constantes ou des données devant être partagées entre toutes les instances d’une classe.

Considérer une entreprise où chaque employé (une instance d’une classe) possède ses propres informations personnelles (nom, poste), mais où l’adresse de l’entreprise (une propriété statique) est la même pour tous les employés. L’adresse appartient à l’entreprise elle-même, et non à un employé individuel.

Comment déclarer et utiliser des propriétés statiques

Pour déclarer une propriété statique, utiliser le mot-clé static à l’intérieur de la classe. Les propriétés statiques ne peuvent être accessibles qu’en utilisant le nom de la classe, et non à partir des instances de la classe.

1234567891011121314151617181920
class 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
copy

Dans cet exemple, la propriété headquarters est partagée entre toutes les instances de la classe Company. Les instances Google et Amazon font toutes deux référence à la même adresse du siège social. Les propriétés statiques sont accessibles directement en utilisant le nom de la classe (Company.headquarters), et non via les instances de la classe.

Comment les propriétés statiques sont partagées entre toutes les instances d'une classe

Étant donné que les propriétés statiques sont attachées à la classe elle-même, elles ne sont pas copiées pour chaque instance. Toutes les instances de la classe font référence à la même propriété statique, ce qui constitue un moyen efficace de stocker des données qui n'ont pas besoin d'être modifiées pour chaque instance.

Exemple : Compteur du nombre d'instances créées

Supposons que nous souhaitions suivre le nombre d'instances d'une classe qui ont été créées. Nous pouvons utiliser une propriété statique pour stocker le nombre d'instances et l'incrémenter à chaque création d'une nouvelle instance.

123456789101112131415161718192021222324
class 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
copy

Dans cet exemple, chaque fois qu'un nouvel utilisateur est créé, la propriété statique count est incrémentée. Toutes les instances de la classe User partagent la même valeur de count, car elle appartient à la classe elle-même.

Avantages des propriétés statiques

Étant donné que les propriétés statiques sont partagées entre les instances, il n'est pas nécessaire de dupliquer les données, ce qui rend le code plus clair et plus efficace. Elles sont particulièrement utiles pour stocker des informations identiques pour toutes les instances, telles que des paramètres de configuration ou des constantes, contribuant ainsi à maintenir la cohérence dans l'ensemble du code.

Exemple concret : Configuration d'une application

Dans un contexte réel, il est possible d'utiliser un objet de configuration d'application pour stocker des paramètres partagés à travers l'application. Les propriétés statiques constituent un choix pertinent pour ce type de cas d'utilisation.

12345678910111213141516171819202122
class 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
copy

Dans cet exemple, le nom de l'application et la version sont partagés entre tous les utilisateurs de l'application. Les propriétés statiques appName et version appartiennent à la classe et ne sont pas dupliquées pour chaque instance.

1. Qu'est-ce qu'une propriété statique ?

2. Comment accéder à une propriété statique ?

3. Dans le code suivant, quelle sera la sortie de console.log(User.count); ?

question mark

Qu'est-ce qu'une propriété statique ?

Select the correct answer

question mark

Comment accéder à une propriété statique ?

Select the correct answer

question mark

Dans le code suivant, quelle sera la sortie de console.log(User.count); ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 11
some-alt