JavaScript-luokka on suunnitelma luoda esineitä. Luokka kapseloi dataa ja toimintoja, jotka manipuloivat dataa.
toisin Kuin muut ohjelmointikieliä kuten Java ja C++, JavaScript-luokat ovat syntaktista sokeria yli prototypal perintö. Toisin sanoen ES6-luokat ovat vain erityistehtäviä.
– Luokat ennen ES6 revisited
Ennen ES6, JavaScript ei ollut käsitteitä luokat., Matkia luokan, me usein käyttää rakentaja funktio, kuten on esitetty seuraavassa esimerkissä:
tuloksena on:
Kuinka se toimii.
Ensimmäinen, luoda Person
rakentaja toiminto, joka on kiinteistön nimi nimeltä name
. getName()
– toiminto on määritetty prototype
niin, että se voidaan jakaa kaikki esiintymät Person
tyyppi.
Sitten, luo uusi esiintymä Person
tyyppi käyttäen new
operaattori., john
objekti, näin ollen, on esimerkiksi Person
ja Object
kautta prototypal perintö.,
seuraavat lausunnot käyttää instanceof
operaattori tarkistaa, jos john
on esimerkiksi Person
ja Object
tyyppi:
Code language: JavaScript (javascript)
ES6 luokka ilmoitus
ES6 otettiin käyttöön uusi syntaksi julistaa luokan, kuten tässä esimerkissä:
Code language: JavaScript (javascript)
Tämä Person
luokka käyttäytyy kuten Person
kirjoita edellisessä esimerkissä. Konstruktorifunktion sijaan se käyttää kuitenkin class
– avainsanaa.,
Person
luokan constructor()
on, jos voit alustaa ominaisuuksia esimerkiksi. JavaScript kutsuu automaattisesti constructor()
menetelmä, kun luot objektin luokan.
seuraavat luo uuden Person
objekti, joka automaattisesti soittaa constructor()
ja Person
luokka:
Code language: JavaScript (javascript)
getName()
kutsutaan menetelmä Person
luokka., Kuten rakentaja toimintoa, voit soittaa menetelmiä luokan käyttämällä seuraavaa syntaksia:
Code language: CSS (css)
esimerkiksi:
Code language: JavaScript (javascript)
varmistaa se, että luokat ovat erityisiä tehtäviä, voit käyttää typeof
operaattori tarkistaa tyyppi Person
luokka.
Code language: JavaScript (javascript)
palaa function
odotetusti.,
john
objekti on myös esimerkiksi Person
ja Object
– tyypit:
Code language: JavaScript (javascript)
Luokka vs. Custom type
Huolimatta yhtäläisyyksiä luokan ja mukautettua tyyppi on määritelty kautta rakentaja toiminto, on joitakin tärkeitä eroja.
ensimmäinen, luokkailmoituksia ei nosteta kuten tehtäväilmoituksia.
esimerkiksi, jos et aseta seuraava koodi ennen Person
luokka ilmoitus-osiossa, saat ReferenceError
.,
Code language: JavaScript (javascript)
Virhe:
Code language: JavaScript (javascript)
Toiseksi, kaikki koodin sisällä luokan automaattisesti suorittaa suppeassa tilassa. Etkä voi muuttaa tätä käytöstä.
kolmas, luokkamenetelmiä ei voida lukea. Jos käytät constructor-toimintoa, sinun on käytettävä Object.defineProperty()
-menetelmää, jotta kiinteistö ei ole luettavissa.
Neljäntenä, kutsuvan luokan rakentaja ilman new
operaattori johtaa virheeseen, kuten seuraavassa esimerkissä.,
Code language: JavaScript (javascript)
Virhe:
Code language: JavaScript (javascript)
Tiivistelmä
- Käytä JavaScript
class
avainsana ilmoittaa uuden luokan. class
ilmoitus on syntaktista sokeria yli prototypal perintö ylimääräisiä parannuksia.
- Auttoiko tämä opetusohjelma ?
- YesNo
Leave a Reply