I denne veiledningen vil du lære om JavaScript-klasser ved hjelp av eksempler.
Klasser er en av funksjonene introdusert i ES6- versjonen av JavaScript.
En klasse er en blåkopi for objektet. Du kan opprette et objekt fra klassen.
Du kan tenke på klassen som en skisse (prototype) av et hus. Den inneholder alle detaljene om gulv, dører, vinduer osv. Basert på disse beskrivelsene bygger du huset. Huset er objektet.
Siden mange hus kan lages fra samme beskrivelse, kan vi lage mange gjenstander fra en klasse.
Opprette JavaScript-klasse
JavaScript-klasse ligner på Javascript-konstruktorfunksjonen, og den er bare et syntaktisk sukker.
Konstruktorfunksjonen er definert som:
// constructor function function Person () ( this.name = 'John', this.age = 23 ) // create an object const person1 = new Person();
I stedet for å bruke function
nøkkelordet, bruker du class
nøkkelordet til å lage JS-klasser. For eksempel,
// creating a class class Person ( constructor(name) ( this.name = name; ) )
Den class
nøkkelordet brukes til å lage en klasse. Egenskapene er tildelt i en konstruktorfunksjon.
Nå kan du opprette 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.
Merk : constructor()
Metoden i en klasse blir kalt automatisk hver gang et objekt opprettes.
Javascript klassemetoder
Mens du bruker konstruktorfunksjon, 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 enkelt å definere metoder i JavaScript-klasse. Du oppgir bare navnet på metoden etterfulgt av ()
. 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
Merk : For å få tilgang til metoden til et objekt, må du ringe metoden ved å bruke navnet fulgt av ()
.
Getters og Setters
I JavaScript får gettermetoder verdien av et objekt og settermetoder angir verdien til et objekt.
JavaScript-klasser kan omfatte getters og setters. Du bruker get
nøkkelordet for gettermetoder og set
for 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
Heising
En klasse bør defineres før du bruker den. I motsetning til funksjoner og andre JavaScript-erklæringer, heises ikke klassen. For eksempel,
// accessing class const p = new Person(); // ReferenceError // defining class class Person ( constructor(name) ( this.name = name; ) )
Som du kan se, får tilgang til en klasse før du definerer den en feil.
'bruk streng'
Klasser følger alltid 'bruk-streng'. All koden i klassen er automatisk i streng modus. For eksempel,
class Person ( constructor() ( a = 0; this.name = a; ) ) let p = new Person(); // ReferenceError: Can't find variable: a
Merk : JavaScript-klasse er en spesiell type funksjon. Og typeof
operatøren kommer tilbake function
for en klasse.
For eksempel,
class Person () console.log(typeof Person); // function