Šioje pamokoje sužinosite apie „JavaScript“ klases naudodamiesi pavyzdžiais.
Klasės yra viena iš funkcijų, įdiegtų „ ES6 “ „JavaScript“ versijoje.
Klasė yra objekto projektas. Galite sukurti objektą iš klasės.
Klasę galite laikyti namo eskizu (prototipu). Jame yra visa išsami informacija apie grindis, duris, langus ir tt Remiantis šiais aprašais, jūs pastatote namą. Namas yra objektas.
Kadangi iš to paties aprašymo galima pagaminti daugybę namų, galime sukurti daug objektų iš klasės.
Kuriama „JavaScript“ klasė
„JavaScript“ klasė yra panaši į „Javascript“ konstruktoriaus funkciją ir yra tik sintaksinis cukrus.
Konstruktoriaus funkcija apibrėžiama taip:
// constructor function function Person () ( this.name = 'John', this.age = 23 ) // create an object const person1 = new Person();
Užuot naudoję function
raktinį žodį, jį naudojate class
kurdami JS klases. Pavyzdžiui,
// creating a class class Person ( constructor(name) ( this.name = name; ) )
class
Raktažodis naudojamas sukurti klasę. Savybės priskiriamos konstruktoriaus funkcijai.
Dabar galite sukurti objektą. Pavyzdžiui,
// 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
Čia person1
ir asmuo2 yra Person
klasės objektai .
Pastaba : constructor()
Metodas klasėje automatiškai iškviečiamas kiekvieną kartą, kai sukuriamas objektas.
„Javascript“ klasės metodai
Naudodami konstruktoriaus funkciją, metodus apibrėžiate kaip:
// constructor function function Person (name) ( // assigning parameter values to the calling object this.name = name; // defining method this.greet = function () ( return ('Hello'' + ' ' + this.name); ) )
„JavaScript“ klasėje lengva apibrėžti metodus. Paprasčiausiai nurodote metodo pavadinimą ()
. Pavyzdžiui,
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
Pastaba : norėdami pasiekti objekto metodą, turite iškviesti metodą naudodami jo pavadinimą ir po jo ()
.
„Getters“ ir „Setters“
„JavaScript“ sistemoje „getter“ metodai gauna objekto vertę, o „seter“ metodai nustato objekto vertę.
„JavaScript“ klasės gali apimti getters ir setters. get
Raktinį žodį naudojate „ getter“ ir set
„setter“ metodams. Pavyzdžiui,
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
Kėlimas
Prieš ją naudojant reikia apibrėžti klasę. Skirtingai nuo funkcijų ir kitų „JavaScript“ deklaracijų, klasė nėra pakeliama. Pavyzdžiui,
// accessing class const p = new Person(); // ReferenceError // defining class class Person ( constructor(name) ( this.name = name; ) )
Kaip matote, prieiga prie klasės prieš ją apibrėžiant iškelia klaidą.
„naudoti griežtai“
Klasės visada laikosi „griežto naudojimo“. Visas klasėje esantis kodas automatiškai veikia griežtu režimu. Pavyzdžiui,
class Person ( constructor() ( a = 0; this.name = a; ) ) let p = new Person(); // ReferenceError: Can't find variable: a
Pastaba : „JavaScript“ klasė yra specialus funkcijų tipas. O typeof
operatorius grįžta function
į klasę.
Pavyzdžiui,
class Person () console.log(typeof Person); // function