⊗jsOpBsPOS 15 of 60 menu

Yksityisyys vanhanaikaisessa OOP:ssa JavaScriptissä

Yksityisten ominaisuuksien ja menetelmien määrittely symbolin # kautta ilmestyi JavaScriptiin vasta äskettäin. Ennen sitä oli pakko käyttää erikoista ovelaa menetelmää.

Tämän menetelmän ydin on sopia, että yksityisten ominaisuuksien ja menetelmien nimien on alettava alaviivalla. Todellisuudessa tällaiset nimet eivät ole yksityisiä, mutta sovimme, että emme käytä niitä luokan ulkopuolelta.

Kokeillaan. Tehdään yksityinen ominaisuus tällä tyylillä:

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

Luodaan luokan olio:

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

Kutsutaan metodia, joka tulostaa ominaisuutemme arvon:

console.log(user.show());

Yritys viitata ominaisuuteen luokan ulkopuolelta ei aiheuta virhettä:

console.log(user._name); // ei virhettä

Tee seuraavassa koodissa ominaisuudet yksityisiksi:

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

Tee seuraavassa koodissa apu- metodi yksityiseksi:

class Employee { constructor(name, salary) { this.name = name; this.salary = salary; } getSalary() { return this.addSign(this.salary); } addSign(num) { return num + '€'; } }
Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää