Классы JavaScript

Классы — это шаблоны для создания объектов.

Мы используем ключевое слово class для создания класса, а тело класса находится внутри пары фигурных скобок.{}Внутри, в фигурных скобках, мы можем{}определять расположение членов класса, таких как методы или конструкторы.

Каждый класс содержит специальный метод.constructor()Это конструктор класса. Этот метод используется для создания и инициализации объекта, создаваемого с помощьюclassсозданного объекта.

Синтаксис создания класса выглядит следующим образом:

class ClassName { constructor() { ... } }

Пример:

Пример

class Example { constructor(name, url) { this.name = name; this.url = url; } }

Приведённый выше пример создаёт класс с именем "Example".

Класс инициализирует два свойства: "name" и "url".

Поддержка браузеров

Числа в таблице обозначают первую версию браузера, которая поддерживает эту возможность.

Chrome 49 Edge 12 Firefox 45 Safari 9 Opera 36
март 2016 июль 2015 март 2016 октябрь 2015 март 2016

Использование классов

После определения класса мы можем использовать ключевое словоnewдля создания объектов:

Пример

class Example { constructor(name, url) { this.name = name; this.url = url; } } let site = new Example("Example", "https://www.example.com");

Попробуйте сами »

При создании объекта автоматически вызывается метод-конструктор.constructor()。

Выражения классов

Выражения классов — это ещё один способ определить класс. Выражения классов могут быть именованными или неименованными. Имя именованного выражения класса локально для тела класса.

Пример

//Безымянный/анонимный класс let Example = class { constructor(name, url) { this.name = name; this.url = url; } }; console.log(Example.name); // вывод: "Example" //Именованный класс let Example = class Example2 { constructor(name, url) { this.name = name; this.url = url; } }; console.log(Example.name); //Вывод: "Example2"

Метод-конструктор

Метод-конструктор — это специальный метод:

  • Метод-конструктор называется constructor().
  • Метод-конструктор автоматически выполняется при создании нового объекта.
  • Метод-конструктор используется для инициализации свойств объекта.
  • Если вы не определяете метод constructor, JavaScript автоматически добавит пустой метод constructor.

Методы класса

Мы используем ключевое словоclassдля создания класса, и можем добавитьconstructor()метод, а затем добавить любое количество методов.

class ClassName { constructor() { ... } method_1() { ... } method_2() { ... } method_3() { ... } }

В следующем примере мы создаем метод "age", который возвращает возраст веб-сайта:

Пример

class Example { constructor(name, year) { this.name = name; this.year = year; } age() { let date = new Date(); return date.getFullYear() - this.year; } } let example = new Example("Example", 2018); document.getElementById("demo").innerHTML = "Example" + example.age() + "лет.";

Попробуйте сами »

Мы также можем передавать параметры в методы класса:

Пример

class Example { constructor(name, year) { this.name = name; this.year = year; } age(x) { return x - this.year; } } let date = new Date(); let year = date.getFullYear(); let example = new Example("Example", 2020); document.getElementById("demo").innerHTML= "Example" + example.age(year) + "лет.";

Попробуйте сами »

Строгий режим "use strict"

Тела объявлений классов и классовых выражений выполняются в строгом режиме. Например, конструкторы, статические методы, методы прототипа, геттеры и сеттеры — все выполняются в строгом режиме.

Если вы не соблюдаете строгий режим, возникнет ошибка:

Пример

class Example { constructor(name, year) { this.name = name; this.year = year; } age() { //date = new Date(); // Ошибка let date = new Date(); //Верно return date.getFullYear() - this.year; } }

Попробуйте сами »

В следующем примере используется необъявленная переменная в классе:

Подробнее о строгом режиме можно узнать здесь:Строгий режим JavaScript (use strict)


Ссылка

Методы класса

Метод Описание
constructor() Конструктор, используемый для создания и инициализации класса.

Ключевые слова класса

Ключевое слово Описание
extends Наследование класса
static Определяет статический метод в классе.
super Вызывает метод-конструктор родительского класса.
Другие расширения