⊗jsOpBsPOS 15 of 60 menu

Privatitet i gammel stil i OOP i JavaScript

Erklæring af private egenskaber og metoder gennem symbolet # dukkede op i JavaScript for nylig. Før det var man nødt til at bruge en speciel snedig teknik.

Essensen af denne teknik er, at man indgår en aftale om, at navnene på private egenskaber og metoder skal starte med en understregning. Reelt set vil sådanne navne ikke være private, men vi aftaler, at vi ikke vil bruge dem udefra klassen.

Lad os prøve. Lad os lave en privat egenskab i denne stil:

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

Lad os oprette et objekt af klassen:

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

Lad os kalde metoden, der viser værdien af vores egenskab:

console.log(user.show());

Et forsøg på at tilgå egenskaben udefra klassen vil ikke resultere i en fejl:

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

Gør egenskaberne private i følgende kode:

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

Gør hjælpemetoden privat i følgende kode:

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