ECMAScript 2015, также известный как ES6, представил классы JavaScript.
Классы JavaScript — это шаблоны объектов JavaScript.
Используйте ключевое слово class, чтобы создать класс.
Всегда добавляйте метод с именем constructor():
class ClassName {
constructor() { ... }
}class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
}В приведенном выше примере создается класс с именем «Car».
Класс имеет два начальных свойства: «имя» и «год».
Класс JavaScript не является объектом.
Это шаблон для объектов JavaScript.
Если у вас есть класс, вы можете использовать его для создания объектов:
const myCar1 = new Car("Ford", 2014);
const myCar2 = new Car("Audi", 2019);Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Classes</h1>
<p>Creating two car objects from a car class:</p>
<p id="demo"></p>
<script>
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
}
const myCar1 = new Car("Ford", 2014);
const myCar2 = new Car("Audi", 2019);
document.getElementById("demo").innerHTML =
myCar1.name + " " + myCar2.name;
</script>
</body>
</html>
В приведенном выше примере класс 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() {
const date = new Date();
return date.getFullYear() - this.year;
}
}
const myCar = new Car("Ford", 2014);
document.getElementById("demo").innerHTML =
"My car is " + myCar.age() + " years old.";Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Class Methods</h1>
<p>How to define and use a Class method.</p>
<p id="demo"></p>
<script>
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age() {
const date = new Date();
return date.getFullYear() - this.year;
}
}
const myCar = new Car("Ford", 2014);
document.getElementById("demo").innerHTML =
"My car is " + myCar.age() + " years old.";
</script>
</body>
</html>
Вы можете отправлять параметры методам класса:
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age(x) {
return x - this.year;
}
}
const date = new Date();
let year = date.getFullYear();
const myCar = new
Car("Ford", 2014);
document.getElementById("demo").innerHTML=
"My car is
" + myCar.age(year) + " years old."; Попробуйте сами →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Class Method</h1>
<p>Pass a parameter into the "age()" method.</p>
<p id="demo"></p>
<script>
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
age(x) {
return x - this.year;
}
}
const date = new Date();
let year = date.getFullYear();
const myCar = new Car("Ford", 2014);
document.getElementById("demo").innerHTML=
"My car is " + myCar.age(year) + " years old.";
</script>
</body>
</html>
В следующей таблице представлена первая версия браузера с полной поддержкой Классы в JavaScript:
| Chrome 49 | Edge 12 | Firefox 45 | Safari 9 | Opera 36 |
| Mar, 2016 | Jul, 2015 | Mar, 2016 | Oct, 2015 | Mar, 2016 |
Позже в этом уроке вы узнаете больше о классах JavaScript.