⊗jsOpBsGSA 18 of 60 menu

Settien ja getterien edut OOP:ssa JavaScriptissä

Edellisessä oppitunnissa teimme jokaiselle ominaisuudelle getterin ja setterin. Saattaa herätä kysymys, miksi tällaiset monimutkaisuudet ovat tarpeellisia, sillä käytännössä saman tuloksen voisi saavuttaa tekemällä ominaisuudet julkisiksi, eikä yksityisiksi.

Asia on siinä, että gettereillä ja settereillä on etuja: ennen ominaisuuteen kääntymistä voi suorittaa tarkistuksia. Esimerkiksi meidän tapauksessamme voimme nimen ja sukunimen kirjoittamisen yhteydessä tarkistaa, että uusi arvo ei ole tyhjä merkkijono:

class User { #name; #surn; setName(name) { if (name.length > 0) { this.#name = name; } else { throw new Error('name is incorrect'); } } setSurn(surn) { if (surn.length > 0) { this.#surn = surn; } else { throw new Error('surn is incorrect'); } } getName() { return this.#name; } getSurn() { return this.#surn; } }

Testataan kuinka tämä toimii. Aluksi luodaan luokan olio:

let user = new User;

Yritetään nyt kirjoittaa oikea arvo:

user.setName('john');

Ja nyt yritetään kirjoittaa väärä arvo:

user.setName(''); // virhe

Luokassa Employee iän setterissä tee tarkistus, että iän tulee olla välillä 0 - 120.

Luokassa Employee palkan getterissä tee niin, että palkkaa luettaessa sen arvon perään lisätään dollarin merkki.

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ää