Учебник по JS

ГЛАВНАЯ JS Введение JS Куда Вывод JS Заявления JS JS-синтаксис JS-комментарии JS-переменные JS Пусть Константа JS JS-операторы JS-арифметика Назначение JS JS-типы данных JS-функции JS-объекты JS-события JS-строки Строковые методы JS Поиск строки JS Шаблоны строк JS JS-номера Методы номеров JS JS-массивы Методы массива JS Сортировка массива JS Итерация массива JS Константа массива JS JS-даты Форматы даты JS Методы получения даты JS Методы установки даты JS JS-математика JS Случайный JS Булевы значения Сравнение JS JS-условия JS-переключатель JS цикл для Цикл JS для входа Цикл JS для Цикл JS во время Перерыв JS JS-итерации JS-наборы JS-карты JS Typeof Преобразование типов JS JS побитовый JS регулярное выражение JS-ошибки Область JS JS-подъем Строгий режим JS JS это ключевое слово Функция стрелки JS JS-классы JS JSON JS-отладка Руководство по стилю JS Лучшие практики JS JS-ошибки JS-производительность Зарезервированные слова JS

JS-версии

JS-версии JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE/пограничный История JS

JS-объекты

Определения объектов Свойства объекта Методы объекта Отображение объекта Средства доступа к объектам Конструкторы объектов Прототипы объектов Итерации объектов Наборы объектов Карты объектов Ссылка на объект

JS-функции

Определения функций Параметры функции Вызов функции Вызов функции Функция Применить Закрытие функций

JS-классы

Введение в класс Наследование классов Статический класс

JS асинхронный

Обратные вызовы JS JS асинхронный JS-обещания JS асинхронный/ожидание

JS HTML DOM

Дом Введение DOM-методы Документ DOM DOM-элементы DOM HTML DOM-формы ДОМ CSS DOM-анимации События ДОМ Слушатель событий DOM DOM-навигация DOM-узлы Коллекции DOM Списки узлов DOM

Спецификация браузера JS

JS-окно JS-экран Местоположение JS История JS JS-навигатор Всплывающее оповещение JS JS Тайминг JS-куки

JS-веб-API

Введение в веб-API API веб-форм API истории веб-поиска API веб-хранилища API веб-работника API веб-выборки API веб-геолокации

JS АЯКС

Введение в АЯКС AJAX XMLHttp АЯКС-запрос AJAX-ответ XML-файл AJAX АЯКС PHP АЯКС АСП База данных AJAX AJAX-приложения Примеры AJAX

JS JSON

Введение в JSON Синтаксис JSON JSON против XML Типы данных JSON Анализ JSON Строковая JSON JSON-объекты JSON-массивы JSON-сервер JSON PHP JSON HTML JSON JSONP

JS против JQuery

Селекторы jQuery JQuery HTML jQuery CSS JQuery DOM

JS-графика

JS-графика JS Холст JS сюжет JS Chart.js JS Google Диаграмма JS D3.js

JS-примеры

JS-примеры JS HTML DOM JS HTML-ввод HTML-объекты JS HTML-события JS JS-браузер JS-редактор JS-упражнения JS-викторина JS-сертификат

JS-ссылки

Объекты JavaScript HTML DOM-объекты


Классы JavaScript

ECMAScript 2015, также известный как ES6, представил классы JavaScript.

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

Синтаксис класса JavaScript

Используйте ключевое слово classдля создания класса.

Всегда добавляйте метод с именем constructor():

Синтаксис

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

Пример

class Car {
  constructor(name, year) {
    this.name = name;
    this.year = year;
  }
}

В приведенном выше примере создается класс с именем «Автомобиль».

Класс имеет два исходных свойства: «имя» и «год».

Класс JavaScript не является объектом.

Это шаблон для объектов JavaScript.


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

Когда у вас есть класс, вы можете использовать его для создания объектов:

Пример

let myCar1 = new Car("Ford", 2014);
let myCar2 = new Car("Audi", 2019);

В приведенном выше примере класс Car используется для создания двух объектов Car .

Метод конструктора вызывается автоматически при создании нового объекта.


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

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

  • Он должен иметь точное имя «конструктор».
  • Выполняется автоматически при создании нового объекта
  • Он используется для инициализации свойств объекта.

Если вы не определите метод конструктора, JavaScript добавит пустой метод конструктора.


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

Методы класса создаются с тем же синтаксисом, что и методы объекта.

Используйте ключевое слово classдля создания класса.

Всегда добавляйте constructor()метод.

Затем добавьте любое количество методов.

Синтаксис

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

Создайте метод класса с именем «возраст», который возвращает возраст автомобиля:

Пример

class Car {
  constructor(name, year) {
    this.name = name;
    this.year = year;
  }
  age() {
    let date = new Date();
    return date.getFullYear() - this.year;
  }
}

let myCar = new Car("Ford", 2014);
document.getElementById("demo").innerHTML =
"My car is " + myCar.age() + " years old.";

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

Пример

class Car {
  constructor(name, year) {
    this.name = name;
    this.year = year;
  }
  age(x) {
    return x - this.year;
  }
}

let date = new Date();
let year = date.getFullYear();

let myCar = new Car("Ford", 2014);
document.getElementById("demo").innerHTML=
"My car is " + myCar.age(year) + " years old.";


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

В следующей таблице указана первая версия браузера с полной поддержкой классов в JavaScript:

Chrome 49 Edge 12 Firefox 45 Safari 9 Opera 36
Mar, 2016 Jul, 2015 Mar, 2016 Oct, 2015 Mar, 2016


"использовать строгий"

Синтаксис в классах должен быть написан в «строгом режиме».

Вы получите сообщение об ошибке, если не будете следовать правилам «строгого режима».

Пример

В «строгом режиме» вы получите ошибку, если используете переменную без ее объявления:

class Car {
  constructor(name, year) {
    this.name = name;
    this.year = year;
  }
  age() {
    // date = new Date();  // This will not work
    let date = new Date(); // This will work
    return date.getFullYear() - this.year;
  }
}

Узнайте больше о «строгом режиме» в: Строгий режим JS .