Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Utforsking av Statiske Egenskaper i JavaScript | Mastering JavaScript-klasser og Arv
Avansert JavaScript-mestring

bookUtforsking av Statiske Egenskaper i JavaScript

Innen programmering gjør statiske egenskaper det mulig å ha delt informasjon på tvers av alle instanser av en klasse, noe som gjør dem ideelle for konsistente data.

Hva er statiske egenskaper?

Statiske egenskaper tilhører selve klassen, ikke en bestemt instans av klassen. Dette betyr at statiske egenskaper deles mellom alle instanser og kan nås direkte fra klassen uten å måtte opprette et objekt. De brukes ofte til hjelpefunksjoner, konstanter eller data som skal deles mellom alle instanser av en klasse.

Tenk på et selskap der hver ansatt (en instans av en klasse) har sin egen personlige informasjon (navn, stilling), men selskapets adresse (en statisk egenskap) er den samme for alle ansatte. Adressen tilhører selve selskapet, ikke den enkelte ansatte.

Hvordan deklarere og bruke statiske egenskaper

For å deklarere en statisk egenskap, bruk nøkkelordet static inne i klassen. Statiske egenskaper kan kun nås ved å bruke klassenavnet, ikke fra klasseinstanser.

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

I dette eksempelet er headquarters-egenskapen delt mellom alle instanser av Company-klassen. Både Google- og Amazon-instansene refererer til samme adresse for hovedkontoret. Statisk egenskaper aksesseres direkte ved å bruke klassenavnet (Company.headquarters), ikke gjennom instanser av klassen.

Hvordan statiske egenskaper deles mellom alle instanser av en klasse

Siden statiske egenskaper er knyttet til selve klassen, blir de ikke kopiert for hver instans. Alle instanser av klassen refererer til den samme statiske egenskapen, noe som gjør det til en effektiv måte å lagre data som ikke trenger å endres per instans.

Eksempel: Teller for antall opprettede instanser

Anta at vi ønsker å holde oversikt over hvor mange instanser av en klasse som er opprettet. Vi kan bruke en statisk egenskap for å lagre antallet instanser, og øke denne hver gang en ny instans opprettes.

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

I dette eksempelet økes den statiske egenskapen count hver gang en ny bruker opprettes. Alle instanser av User-klassen deler samme verdi for count, siden den tilhører selve klassen.

Fordeler med statiske egenskaper

Siden statiske egenskaper deles mellom instanser, er det ikke nødvendig å duplisere data, noe som gjør koden mer oversiktlig og effektiv. De er spesielt nyttige for å lagre informasjon som er lik for alle instanser, som konfigurasjonsinnstillinger eller konstanter, og bidrar til å opprettholde konsistens gjennom hele koden.

Virkelig eksempel: Applikasjonskonfigurasjon

I en virkelig situasjon kan det være et applikasjonskonfigurasjonsobjekt som lagrer delte innstillinger på tvers av applikasjonen. Statiske egenskaper er et utmerket valg for slike brukstilfeller.

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

I dette eksempelet deles app-navn og versjon mellom alle brukere av applikasjonen. De statiske egenskapene appName og version tilhører klassen og blir ikke duplisert for hver instans.

1. Hva er en statisk egenskap?

2. Hvordan får man tilgang til en statisk egenskap?

3. I den følgende koden, hva vil console.log(User.count); skrive ut?

question mark

Hva er en statisk egenskap?

Select the correct answer

question mark

Hvordan får man tilgang til en statisk egenskap?

Select the correct answer

question mark

I den følgende koden, hva vil console.log(User.count); skrive ut?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 11

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

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

bookUtforsking av Statiske Egenskaper i JavaScript

Sveip for å vise menyen

Innen programmering gjør statiske egenskaper det mulig å ha delt informasjon på tvers av alle instanser av en klasse, noe som gjør dem ideelle for konsistente data.

Hva er statiske egenskaper?

Statiske egenskaper tilhører selve klassen, ikke en bestemt instans av klassen. Dette betyr at statiske egenskaper deles mellom alle instanser og kan nås direkte fra klassen uten å måtte opprette et objekt. De brukes ofte til hjelpefunksjoner, konstanter eller data som skal deles mellom alle instanser av en klasse.

Tenk på et selskap der hver ansatt (en instans av en klasse) har sin egen personlige informasjon (navn, stilling), men selskapets adresse (en statisk egenskap) er den samme for alle ansatte. Adressen tilhører selve selskapet, ikke den enkelte ansatte.

Hvordan deklarere og bruke statiske egenskaper

For å deklarere en statisk egenskap, bruk nøkkelordet static inne i klassen. Statiske egenskaper kan kun nås ved å bruke klassenavnet, ikke fra klasseinstanser.

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

I dette eksempelet er headquarters-egenskapen delt mellom alle instanser av Company-klassen. Både Google- og Amazon-instansene refererer til samme adresse for hovedkontoret. Statisk egenskaper aksesseres direkte ved å bruke klassenavnet (Company.headquarters), ikke gjennom instanser av klassen.

Hvordan statiske egenskaper deles mellom alle instanser av en klasse

Siden statiske egenskaper er knyttet til selve klassen, blir de ikke kopiert for hver instans. Alle instanser av klassen refererer til den samme statiske egenskapen, noe som gjør det til en effektiv måte å lagre data som ikke trenger å endres per instans.

Eksempel: Teller for antall opprettede instanser

Anta at vi ønsker å holde oversikt over hvor mange instanser av en klasse som er opprettet. Vi kan bruke en statisk egenskap for å lagre antallet instanser, og øke denne hver gang en ny instans opprettes.

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

I dette eksempelet økes den statiske egenskapen count hver gang en ny bruker opprettes. Alle instanser av User-klassen deler samme verdi for count, siden den tilhører selve klassen.

Fordeler med statiske egenskaper

Siden statiske egenskaper deles mellom instanser, er det ikke nødvendig å duplisere data, noe som gjør koden mer oversiktlig og effektiv. De er spesielt nyttige for å lagre informasjon som er lik for alle instanser, som konfigurasjonsinnstillinger eller konstanter, og bidrar til å opprettholde konsistens gjennom hele koden.

Virkelig eksempel: Applikasjonskonfigurasjon

I en virkelig situasjon kan det være et applikasjonskonfigurasjonsobjekt som lagrer delte innstillinger på tvers av applikasjonen. Statiske egenskaper er et utmerket valg for slike brukstilfeller.

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

I dette eksempelet deles app-navn og versjon mellom alle brukere av applikasjonen. De statiske egenskapene appName og version tilhører klassen og blir ikke duplisert for hver instans.

1. Hva er en statisk egenskap?

2. Hvordan får man tilgang til en statisk egenskap?

3. I den følgende koden, hva vil console.log(User.count); skrive ut?

question mark

Hva er en statisk egenskap?

Select the correct answer

question mark

Hvordan får man tilgang til en statisk egenskap?

Select the correct answer

question mark

I den følgende koden, hva vil console.log(User.count); skrive ut?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 11
some-alt