⊗jsOpBsPOS 15 of 60 menu

Privatitet i gammel stil i OOP i JavaScript

Erklæring av private egenskaper og metoder via symbolet # dukket opp i JavaScript for nylig. Før det måtte man bruke et spesielt triks.

Essensen av dette trikset er at man inngår en avtale om at navn på private egenskaper og metoder skal starte med understrekingssymbolet. I virkeligheten vil slike navn ikke være private, men vi avtaler at vi ikke skal bruke dem utenfra klassen.

La oss prøve. La oss lage en privat egenskap i denne stilen:

class User { constructor(name) { this._name = name; } show() { return this._name; } }

La oss opprette et objekt av klassen:

let user = new User('john', 'smit');

La oss kalle metoden som viser verdien av vår egenskap:

console.log(user.show());

Et forsøk på å få tilgang til egenskapen utenfra klassen vil ikke føre til en feil:

console.log(user._name); // ingen feil

I følgende kode, gjør egenskapene private:

class Employee { constructor(name, salary) { this.name = name; this.salary = salary; } getName() { return this.name; } getSalary() { return this.salary; } }

I følgende kode, gjør hjelpemetoden privat:

class Employee { constructor(name, salary) { this.name = name; this.salary = salary; } getSalary() { return this.addSign(this.salary); } addSign(num) { return num + ' kr'; } }
Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis