Tässä opetusohjelmassa opit JavaScript-luokista esimerkkien avulla.
Luokat ovat yksi JavaScriptin ES6- version ominaisuuksista.
Luokka on objektin suunnitelma. Voit luoda objektin luokasta.
Voit ajatella luokkaa luonnoksena (prototyypiksi) talosta. Se sisältää kaikki yksityiskohdat kerroksista, ovista, ikkunoista jne. Näiden kuvausten perusteella rakennat talon. Talo on esine.
Koska samasta kuvauksesta voidaan tehdä monia taloja, voimme luoda monia esineitä luokasta.
JavaScript-luokan luominen
JavaScript-luokka on samanlainen kuin Javascript-konstruktoritoiminto, ja se on vain syntaktinen sokeri.
Konstruktoritoiminto määritellään seuraavasti:
// constructor function function Person () ( this.name = 'John', this.age = 23 ) // create an object const person1 = new Person();
Sen sijaan käyttää function
avainsanan käytät class
avainsanaa luomiseen JS luokissa. Esimerkiksi,
// creating a class class Person ( constructor(name) ( this.name = name; ) )
class
Avainsanaa käytetään luoda luokan. Ominaisuudet määritetään konstruktoritoiminnossa.
Nyt voit luoda objektin. Esimerkiksi,
// creating a class class Person ( constructor(name) ( this.name = name; ) ) // creating an object const person1 = new Person('John'); const person2 = new Person('Jack'); console.log(person1.name); // John console.log(person2.name); // Jack
Tässä person1
ja henkilö2 ovat Person
luokan esineitä .
Huomautus : constructor()
Luokan sisällä olevaa menetelmää kutsutaan automaattisesti joka kerta, kun objekti luodaan.
Javascript-luokan menetelmät
Konstruktoritoimintoa käytettäessä määrität menetelmät seuraavasti:
// constructor function function Person (name) ( // assigning parameter values to the calling object this.name = name; // defining method this.greet = function () ( return ('Hello'' + ' ' + this.name); ) )
Menetelmät on helppo määritellä JavaScript-luokassa. Annat yksinkertaisesti menetelmän nimen, jota seuraa ()
. Esimerkiksi,
class Person ( constructor(name) ( this.name = name; ) // defining method greet() ( console.log(`Hello $(this.name)`); ) ) let person1 = new Person('John'); // accessing property console.log(person1.name); // John // accessing method person1.greet(); // Hello John
Huomautus : Jotta voit käyttää objektin menetelmää, sinun on kutsuttava menetelmää käyttämällä sen nimeä ja sitä seuraavaa ()
.
Getters ja Setters
JavaScriptissä getter-menetelmät saavat objektin arvon ja setter-menetelmät asettavat objektin arvon.
JavaScripti-luokat voivat sisältää gettereitä ja asettimia. Käytät get
avainsanan getter menetelmiä ja set
Asettajalle menetelmiä. Esimerkiksi,
class Person ( constructor(name) ( this.name = name; ) // getter get personName() ( return this.name; ) // setter set personName(x) ( this.name = x; ) ) let person1 = new Person('Jack'); console.log(person1.name); // Jack // changing the value of name property person1.personName = 'Sarah'; console.log(person1.name); // Sarah
Nosto
Luokka tulisi määritellä ennen sen käyttöä. Toisin kuin toiminnot ja muut JavaScript-ilmoitukset, luokkaa ei nosteta. Esimerkiksi,
// accessing class const p = new Person(); // ReferenceError // defining class class Person ( constructor(name) ( this.name = name; ) )
Kuten näette, luokan käyttäminen ennen sen määrittelemistä heittää virheen.
"käytä tiukasti"
Luokat noudattavat aina 'käytön rajoituksia'. Kaikki luokan sisällä olevat koodit ovat automaattisesti tiukassa tilassa. Esimerkiksi,
class Person ( constructor() ( a = 0; this.name = a; ) ) let p = new Person(); // ReferenceError: Can't find variable: a
Huomaa : JavaScript-luokka on erityinen toimintotyyppi. Ja typeof
operaattori palaa function
luokalle.
Esimerkiksi,
class Person () console.log(typeof Person); // function