V tomto tutoriáli sa pomocou príkladov dozviete o triedach JavaScriptu.
Triedy sú jednou z funkcií zavedených vo verzii ES6 JavaScriptu.
Trieda je návrhom objektu. Môžete vytvoriť objekt z triedy.
Triedu si môžete predstaviť ako náčrt (prototyp) domu. Obsahuje všetky podrobnosti o podlahách, dverách, oknách atď. Na základe týchto popisov postavíte dom. Dom je objekt.
Pretože z rovnakého popisu je možné vyrobiť mnoho domov, môžeme z triedy vytvoriť veľa objektov.
Vytvára sa trieda JavaScriptu
Trieda JavaScript je podobná funkcii konštruktora Javascript a je to iba syntaktický cukor.
Funkcia konštruktora je definovaná ako:
// constructor function function Person () ( this.name = 'John', this.age = 23 ) // create an object const person1 = new Person();
Namiesto použitia function
kľúčového slova použijete class
kľúčové slovo na vytvorenie tried JS. Napríklad,
// creating a class class Person ( constructor(name) ( this.name = name; ) )
class
Kľúčové slovo sa používa na vytvorenie triedy. Vlastnosti sú priradené vo funkcii konštruktora.
Teraz môžete vytvoriť objekt. Napríklad,
// 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
Tu person1
a person2 sú predmety Person
triedy.
Poznámka : constructor()
Metóda vo vnútri triedy sa volá automaticky pri každom vytvorení objektu.
Metódy triedy Javascript
Pri použití funkcie konštruktora definujete metódy ako:
// constructor function function Person (name) ( // assigning parameter values to the calling object this.name = name; // defining method this.greet = function () ( return ('Hello'' + ' ' + this.name); ) )
Je ľahké definovať metódy v triede JavaScriptu. Jednoducho dáte názov metódy, za ktorou nasleduje ()
. Napríklad,
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
Poznámka : Ak chcete získať prístup k metóde objektu, musíte metódu zavolať pomocou jej názvu, za ktorým nasleduje ()
.
Getters a Setters
V JavaScripte metódy getter získavajú hodnotu objektu a metódy setteru nastavujú hodnotu objektu.
Triedy JavaScriptu môžu obsahovať getry a settery. Použiť get
kľúčové slovo pre metódy získanie a set
pre metódy setter. Napríklad,
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
Zdvíhanie
Pred použitím by mala byť definovaná trieda. Na rozdiel od funkcií a iných deklarácií jazyka JavaScript nie je trieda zdvihnutá. Napríklad,
// accessing class const p = new Person(); // ReferenceError // defining class class Person ( constructor(name) ( this.name = name; ) )
Ako vidíte, prístup k triede pred jej definovaním spôsobí chybu.
„používať prísne“
Triedy vždy nasledujú „prísne pre použitie“. Celý kód vo vnútri triedy je automaticky v prísnom režime. Napríklad,
class Person ( constructor() ( a = 0; this.name = a; ) ) let p = new Person(); // ReferenceError: Can't find variable: a
Poznámka : Trieda JavaScript je špeciálny typ funkcie. A typeof
operátor sa vráti function
pre triedu.
Napríklad,
class Person () console.log(typeof Person); // function