JavaScript-klasser

I den här handledningen lär du dig JavaScript-klasser med hjälp av exempel.

Klasser är en av funktionerna som introduceras i ES6- versionen av JavaScript.

En klass är en ritning för objektet. Du kan skapa ett objekt från klassen.

Du kan tänka på klassen som en skiss (prototyp) av ett hus. Den innehåller alla detaljer om golv, dörrar, fönster etc. Baserat på dessa beskrivningar bygger du huset. Huset är objektet.

Eftersom många hus kan göras från samma beskrivning kan vi skapa många objekt från en klass.

Skapa JavaScript-klass

JavaScript-klass liknar Javascript-konstruktionsfunktionen, och det är bara ett syntaktiskt socker.

Konstruktorfunktionen definieras som:

 // constructor function function Person () ( this.name = 'John', this.age = 23 ) // create an object const person1 = new Person();

Istället för att använda functionnyckelordet använder du classnyckelordet för att skapa JS-klasser. Till exempel,

 // creating a class class Person ( constructor(name) ( this.name = name; ) )

Det classnyckelordet används för att skapa en klass. Egenskaperna tilldelas i en konstruktionsfunktion.

Nu kan du skapa ett objekt. Till exempel,

 // 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

Här person1och person2 är klassobjekt Person.

Obs : Den constructor()metod inuti en klass anropas automatiskt varje gång ett objekt skapas.

Javascript klassmetoder

Medan du använder konstruktorfunktion definierar 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 är lätt att definiera metoder i JavaScript-klass. Du anger helt enkelt namnet på metoden följt av (). Till exempel,

 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

Obs! För att komma åt metoden för ett objekt måste du ringa metoden med dess namn följt av ().

Getters och Setters

I JavaScript får gettermetoder värdet på ett objekt och settermetoder anger ett objekts värde.

JavaScript-klasser kan innehålla getters och setters. Du använder getnyckelordet för gettermetoder och setför settermetoder. Till exempel,

 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

Hissning

En klass bör definieras innan den används. Till skillnad från funktioner och andra JavaScript-deklarationer lyfts inte klassen. Till exempel,

 // accessing class const p = new Person(); // ReferenceError // defining class class Person ( constructor(name) ( this.name = name; ) )

Som du kan se ger åtkomst till en klass innan du definierar den ett fel.

'använd strikt'

Klasser följer alltid 'användningsstrikt'. All kod i klassen är automatiskt i strikt läge. Till exempel,

 class Person ( constructor() ( a = 0; this.name = a; ) ) let p = new Person(); // ReferenceError: Can't find variable: a

Obs : JavaScript-klass är en speciell typ av funktion. Och typeofoperatören återvänder functiontill en klass.

Till exempel,

 class Person () console.log(typeof Person); // function

Intressanta artiklar...