JavaScript класове

В този урок ще научите за класовете по 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

Интересни статии...