JavaScript-luokat

Tässä opetusohjelmassa opit JavaScript-luokista esimerkkien avulla.

Luokat ovat yksi JavaScriptin ES6- version ominaisuuksista.

Luokka on objektin suunnitelma. Voit luoda objektin luokasta.

Voit ajatella luokkaa luonnoksena (prototyypiksi) talosta. Se sisältää kaikki yksityiskohdat kerroksista, ovista, ikkunoista jne. Näiden kuvausten perusteella rakennat talon. Talo on esine.

Koska samasta kuvauksesta voidaan tehdä monia taloja, voimme luoda monia esineitä luokasta.

JavaScript-luokan luominen

JavaScript-luokka on samanlainen kuin Javascript-konstruktoritoiminto, ja se on vain syntaktinen sokeri.

Konstruktoritoiminto määritellään seuraavasti:

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

Sen sijaan käyttää functionavainsanan käytät classavainsanaa luomiseen JS luokissa. Esimerkiksi,

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

classAvainsanaa käytetään luoda luokan. Ominaisuudet määritetään konstruktoritoiminnossa.

Nyt voit luoda objektin. Esimerkiksi,

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

Tässä person1ja henkilö2 ovat Personluokan esineitä .

Huomautus : constructor()Luokan sisällä olevaa menetelmää kutsutaan automaattisesti joka kerta, kun objekti luodaan.

Javascript-luokan menetelmät

Konstruktoritoimintoa käytettäessä määrität menetelmät seuraavasti:

 // constructor function function Person (name) ( // assigning parameter values to the calling object this.name = name; // defining method this.greet = function () ( return ('Hello'' + ' ' + this.name); ) )

Menetelmät on helppo määritellä JavaScript-luokassa. Annat yksinkertaisesti menetelmän nimen, jota seuraa (). Esimerkiksi,

 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

Huomautus : Jotta voit käyttää objektin menetelmää, sinun on kutsuttava menetelmää käyttämällä sen nimeä ja sitä seuraavaa ().

Getters ja Setters

JavaScriptissä getter-menetelmät saavat objektin arvon ja setter-menetelmät asettavat objektin arvon.

JavaScripti-luokat voivat sisältää gettereitä ja asettimia. Käytät getavainsanan getter menetelmiä ja setAsettajalle menetelmiä. Esimerkiksi,

 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

Nosto

Luokka tulisi määritellä ennen sen käyttöä. Toisin kuin toiminnot ja muut JavaScript-ilmoitukset, luokkaa ei nosteta. Esimerkiksi,

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

Kuten näette, luokan käyttäminen ennen sen määrittelemistä heittää virheen.

"käytä tiukasti"

Luokat noudattavat aina 'käytön rajoituksia'. Kaikki luokan sisällä olevat koodit ovat automaattisesti tiukassa tilassa. Esimerkiksi,

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

Huomaa : JavaScript-luokka on erityinen toimintotyyppi. Ja typeofoperaattori palaa functionluokalle.

Esimerkiksi,

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

Mielenkiintoisia artikkeleita...