I denne vejledning lærer du om JavaScript-klasser ved hjælp af eksempler.
Klasser er en af funktionerne introduceret i ES6- versionen af JavaScript.
En klasse er en plan for objektet. Du kan oprette et objekt fra klassen.
Du kan tænke på klassen som en skitse (prototype) af et hus. Den indeholder alle detaljer om gulve, døre, vinduer osv. Baseret på disse beskrivelser bygger du huset. Huset er objektet.
Da mange huse kan laves ud fra den samme beskrivelse, kan vi oprette mange objekter fra en klasse.
Oprettelse af JavaScript-klasse
JavaScript-klasse svarer til Javascript-konstruktørfunktionen, og det er kun et syntaktisk sukker.
Konstruktorfunktionen er defineret som:
// constructor function function Person () ( this.name = 'John', this.age = 23 ) // create an object const person1 = new Person();
I stedet for at bruge function
nøgleordet bruger du class
nøgleordet til at oprette JS-klasser. For eksempel,
// creating a class class Person ( constructor(name) ( this.name = name; ) )
Den class
søgeord bruges til at oprette en klasse. Egenskaberne tildeles i en konstruktionsfunktion.
Nu kan du oprette et objekt. For eksempel,
// 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
Her person1
og person2 er objekter i Person
klassen.
Bemærk : constructor()
Metoden inde i en klasse kaldes automatisk hver gang et objekt oprettes.
Javascript klassemetoder
Mens du bruger konstruktorfunktion, definerer du metoder som:
// constructor function function Person (name) ( // assigning parameter values to the calling object this.name = name; // defining method this.greet = function () ( return ('Hello'' + ' ' + this.name); ) )
Det er let at definere metoder i JavaScript-klasse. Du giver blot navnet på metoden efterfulgt af ()
. For eksempel,
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
Bemærk : For at få adgang til metoden til et objekt skal du kalde metoden ved hjælp af dens navn efterfulgt af ()
.
Getters og Setters
I JavaScript får gettermetoder værdien af et objekt, og settermetoder indstiller værdien af et objekt.
JavaScript-klasser kan omfatte getters og setters. Du bruger get
nøgleordet til gettermetoder og set
til settermetoder. For eksempel,
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
Hejsning
En klasse skal defineres, inden den bruges. I modsætning til funktioner og andre JavaScript-erklæringer hæves klassen ikke. For eksempel,
// accessing class const p = new Person(); // ReferenceError // defining class class Person ( constructor(name) ( this.name = name; ) )
Som du kan se, får du adgang til en klasse, før du definerer den, en fejl.
'brug streng'
Klasser følger altid 'brugsstreng'. Al koden inde i klassen er automatisk i streng tilstand. For eksempel,
class Person ( constructor() ( a = 0; this.name = a; ) ) let p = new Person(); // ReferenceError: Can't find variable: a
Bemærk : JavaScript-klasse er en speciel type funktion. Og typeof
operatøren vender tilbage function
til en klasse.
For eksempel,
class Person () console.log(typeof Person); // function