V tomto výukovém programu se na příkladech dozvíte o třídách JavaScriptu.
Třídy jsou jednou z funkcí zavedených ve verzi Java ES6 JavaScriptu.
Třída je plán pro objekt. Z třídy můžete vytvořit objekt.
Třídu si můžete představit jako náčrt (prototyp) domu. Obsahuje všechny podrobnosti o podlahách, dveřích, oknech atd. Na základě těchto popisů stavíte dům. Dům je objekt.
Protože ze stejného popisu lze vyrobit mnoho domů, můžeme z třídy vytvořit mnoho objektů.
Vytváření třídy JavaScriptu
Třída JavaScript je podobná funkci konstruktoru Javascript a je to pouze syntaktický cukr.
Funkce konstruktoru je definována jako:
// constructor function function Person () ( this.name = 'John', this.age = 23 ) // create an object const person1 = new Person();
Místo použití function
klíčového slova použijete class
klíčové slovo pro vytváření tříd JS. Například,
// creating a class class Person ( constructor(name) ( this.name = name; ) )
class
Klíčové slovo se používá k vytvoření třídy. Vlastnosti jsou přiřazeny ve funkci konstruktoru.
Nyní můžete vytvořit objekt. Napří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
Zde person1
a person2 jsou předměty Person
třídy.
Poznámka : constructor()
Metoda uvnitř třídy se volá automaticky při každém vytvoření objektu.
Metody třídy Javascript
Při použití funkce konstruktoru definujete metody jako:
// 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 snadné definovat metody ve třídě JavaScriptu. Jednoduše zadáte název metody a následně ()
. Napří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 : Chcete-li získat přístup k metodě objektu, musíte metodu zavolat pomocí jejího názvu následovaného znakem ()
.
Getters a Setters
V JavaScriptu získají metody getter hodnotu objektu a metody setteru nastaví hodnotu objektu.
Třídy JavaScript mohou zahrnovat getry a settery. get
Klíčové slovo používáte pro metody getter a set
pro metody setter. Napří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
Zdvihání
Před použitím by měla být definována třída. Na rozdíl od funkcí a dalších deklarací JavaScriptu není třída zvednuta. Například,
// accessing class const p = new Person(); // ReferenceError // defining class class Person ( constructor(name) ( this.name = name; ) )
Jak vidíte, přístup do třídy před definováním vyvolá chybu.
'use strict'
Třídy vždy následují „přísné použití“. Veškerý kód uvnitř třídy je automaticky v přísném režimu. Například,
class Person ( constructor() ( a = 0; this.name = a; ) ) let p = new Person(); // ReferenceError: Can't find variable: a
Poznámka : Třída JavaScript je speciální typ funkce. A typeof
operátor se vrátí function
pro třídu.
Například,
class Person () console.log(typeof Person); // function