В този урок ще научите за класовете по JavaScript с помощта на примери.
Класовете са една от функциите, въведени в ES6 версията на JavaScript.
Класът е план за обекта. Можете да създадете обект от класа.
Можете да мислите за класа като скица (прототип) на къща. Той съдържа всички подробности за подовете, вратите, прозорците и др. Въз основа на тези описания вие изграждате къщата. Къщата е обектът.
Тъй като много къщи могат да бъдат направени от едно и също описание, ние можем да създадем много обекти от клас.
Създаване на JavaScript клас
JavaScript класът е подобен на конструкторската функция на Javascript и е просто синтактична захар.
Функцията конструктор се дефинира като:
// constructor function function Person () ( this.name = 'John', this.age = 23 ) // create an object const person1 = new Person();
Вместо да използвате function
ключовата дума, вие използвате class
ключовата дума за създаване на JS класове. Например,
// creating a class class Person ( constructor(name) ( this.name = name; ) )
В class
ключовата дума се използва за създаване на клас. Свойствата се присвояват във функция конструктор.
Сега можете да създадете обект. Например,
// 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
Тук person1
и person2 са обекти от Person
клас.
Забележка : constructor()
Методът в клас се извиква автоматично при всяко създаване на обект.
Методи за клас на Javascript
Докато използвате функцията конструктор, вие определяте методите като:
// 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. Просто давате името на метода, последван от ()
. Например,
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
Забележка : За да осъществите достъп до метода на обект, трябва да извикате метода, използвайки името му, последвано от ()
.
Гетери и сетери
В JavaScript методите getter получават стойността на обект, а методите setter задават стойността на обект.
JavaScript класовете могат да включват гетери и сетери. Използвате get
ключовата дума за методите getter и set
за методите setter. Например,
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
Повдигане
Трябва да се дефинира клас, преди да се използва. За разлика от функциите и други JavaScript декларации, класът не е повдигнат. Например,
// accessing class const p = new Person(); // ReferenceError // defining class class Person ( constructor(name) ( this.name = name; ) )
Както можете да видите, достъпът до клас, преди да го дефинирате, извежда грешка.
„използвайте стриктно“
Класовете винаги следват „стриктно използване“. Целият код вътре в класа автоматично е в строг режим. Например,
class Person ( constructor() ( a = 0; this.name = a; ) ) let p = new Person(); // ReferenceError: Can't find variable: a
Забележка : JavaScript класът е специален тип функция. И typeof
операторът се връща function
за клас.
Например,
class Person () console.log(typeof Person); // function