Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Esplorazione delle Proprietà Statiche in JavaScript | Padronanza delle Classi e dell'Ereditarietà in JavaScript
Padronanza Avanzata di JavaScript

bookEsplorazione delle Proprietà Statiche in JavaScript

Nella programmazione, le proprietà statiche consentono la condivisione di informazioni tra tutte le istanze di una classe, rendendole ideali per dati coerenti.

Cosa sono le proprietà statiche?

Le proprietà statiche appartengono alla classe stessa e non a una particolare istanza della classe. Questo significa che le proprietà statiche sono condivise tra tutte le istanze e possono essere accessibili direttamente dalla classe senza la necessità di istanziare un oggetto. Sono spesso utilizzate per funzioni di utilità, costanti o dati che devono essere condivisi tra tutte le istanze di una classe.

Si consideri un'azienda in cui ogni dipendente (un'istanza di una classe) possiede le proprie informazioni personali (nome, posizione), ma l'indirizzo dell'azienda (una proprietà statica) è lo stesso per tutti i dipendenti. L'indirizzo appartiene all'azienda stessa, non a un singolo dipendente.

Come dichiarare e utilizzare le proprietà statiche

Per dichiarare una proprietà statica, utilizzare la parola chiave static all'interno della classe. Le proprietà statiche possono essere accessibili solo utilizzando il nome della classe, non dalle istanze della 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

In questo esempio, la proprietà headquarters è condivisa tra tutte le istanze della classe Company. Sia le istanze Google che Amazon fanno riferimento allo stesso indirizzo della sede centrale. Le proprietà statiche vengono accedute direttamente tramite il nome della classe (Company.headquarters), non attraverso le istanze della classe.

Come le proprietà statiche sono condivise tra tutte le istanze di una classe

Poiché le proprietà statiche sono associate direttamente alla classe, non vengono copiate per ogni istanza. Tutte le istanze della classe fanno riferimento alla stessa proprietà statica, rendendola un modo efficiente per memorizzare dati che non devono cambiare per ogni istanza.

Esempio: Contatore per il Numero di Istanze Create

Supponiamo di voler tenere traccia di quante istanze di una classe sono state create. Possiamo utilizzare una proprietà statica per memorizzare il conteggio delle istanze e incrementarla ogni volta che viene creata una nuova istanza.

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

In questo esempio, ogni volta che viene creato un nuovo utente, la proprietà statica count viene incrementata. Tutte le istanze della classe User condividono lo stesso valore di count, poiché appartiene alla classe stessa.

Vantaggi delle Proprietà Statiche

Poiché le proprietà statiche sono condivise tra le istanze, non è necessario duplicare i dati, mantenendo il codice più pulito ed efficiente. Sono particolarmente utili per memorizzare informazioni uguali per tutte le istanze, come impostazioni di configurazione o costanti, contribuendo a mantenere la coerenza all'interno del codice.

Esempio Reale: Configurazione di un'Applicazione

In uno scenario reale, si potrebbe avere un oggetto di configurazione dell'applicazione che memorizza impostazioni condivise in tutta l'applicazione. Le proprietà statiche rappresentano una scelta eccellente per questi casi d'uso.

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

In questo esempio, il nome dell'app e la versione sono condivisi tra tutti gli utenti dell'applicazione. Le proprietà statiche appName e version appartengono alla classe e non vengono replicate per ogni istanza.

1. Che cos'è una proprietà statica?

2. Come si accede a una proprietà statica?

3. Nel seguente codice, quale valore restituirà console.log(User.count);?

question mark

Che cos'è una proprietà statica?

Select the correct answer

question mark

Come si accede a una proprietà statica?

Select the correct answer

question mark

Nel seguente codice, quale valore restituirà console.log(User.count);?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 11

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

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

bookEsplorazione delle Proprietà Statiche in JavaScript

Scorri per mostrare il menu

Nella programmazione, le proprietà statiche consentono la condivisione di informazioni tra tutte le istanze di una classe, rendendole ideali per dati coerenti.

Cosa sono le proprietà statiche?

Le proprietà statiche appartengono alla classe stessa e non a una particolare istanza della classe. Questo significa che le proprietà statiche sono condivise tra tutte le istanze e possono essere accessibili direttamente dalla classe senza la necessità di istanziare un oggetto. Sono spesso utilizzate per funzioni di utilità, costanti o dati che devono essere condivisi tra tutte le istanze di una classe.

Si consideri un'azienda in cui ogni dipendente (un'istanza di una classe) possiede le proprie informazioni personali (nome, posizione), ma l'indirizzo dell'azienda (una proprietà statica) è lo stesso per tutti i dipendenti. L'indirizzo appartiene all'azienda stessa, non a un singolo dipendente.

Come dichiarare e utilizzare le proprietà statiche

Per dichiarare una proprietà statica, utilizzare la parola chiave static all'interno della classe. Le proprietà statiche possono essere accessibili solo utilizzando il nome della classe, non dalle istanze della 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

In questo esempio, la proprietà headquarters è condivisa tra tutte le istanze della classe Company. Sia le istanze Google che Amazon fanno riferimento allo stesso indirizzo della sede centrale. Le proprietà statiche vengono accedute direttamente tramite il nome della classe (Company.headquarters), non attraverso le istanze della classe.

Come le proprietà statiche sono condivise tra tutte le istanze di una classe

Poiché le proprietà statiche sono associate direttamente alla classe, non vengono copiate per ogni istanza. Tutte le istanze della classe fanno riferimento alla stessa proprietà statica, rendendola un modo efficiente per memorizzare dati che non devono cambiare per ogni istanza.

Esempio: Contatore per il Numero di Istanze Create

Supponiamo di voler tenere traccia di quante istanze di una classe sono state create. Possiamo utilizzare una proprietà statica per memorizzare il conteggio delle istanze e incrementarla ogni volta che viene creata una nuova istanza.

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

In questo esempio, ogni volta che viene creato un nuovo utente, la proprietà statica count viene incrementata. Tutte le istanze della classe User condividono lo stesso valore di count, poiché appartiene alla classe stessa.

Vantaggi delle Proprietà Statiche

Poiché le proprietà statiche sono condivise tra le istanze, non è necessario duplicare i dati, mantenendo il codice più pulito ed efficiente. Sono particolarmente utili per memorizzare informazioni uguali per tutte le istanze, come impostazioni di configurazione o costanti, contribuendo a mantenere la coerenza all'interno del codice.

Esempio Reale: Configurazione di un'Applicazione

In uno scenario reale, si potrebbe avere un oggetto di configurazione dell'applicazione che memorizza impostazioni condivise in tutta l'applicazione. Le proprietà statiche rappresentano una scelta eccellente per questi casi d'uso.

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

In questo esempio, il nome dell'app e la versione sono condivisi tra tutti gli utenti dell'applicazione. Le proprietà statiche appName e version appartengono alla classe e non vengono replicate per ogni istanza.

1. Che cos'è una proprietà statica?

2. Come si accede a una proprietà statica?

3. Nel seguente codice, quale valore restituirà console.log(User.count);?

question mark

Che cos'è una proprietà statica?

Select the correct answer

question mark

Come si accede a una proprietà statica?

Select the correct answer

question mark

Nel seguente codice, quale valore restituirà console.log(User.count);?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 11
some-alt