update classes

This commit is contained in:
2025-03-05 15:12:57 +03:00
parent 31caa0e6de
commit 8b08f95ce0
12 changed files with 421 additions and 0 deletions

View File

@@ -0,0 +1,46 @@
---
sidebar_position: 3
---
# Статические свойства и методы
Статические методы используются для функциональности, принадлежат классу «в целом», а не относятся к конкретному объекту класса.
Например, метод для сравнения двух статей Article.compare(article1, article2) или фабричный метод Article.createTodays().
В объявлении класса они помечаются ключевым словом static.
Статические свойства используются в тех случаях, когда мы хотели бы сохранить данные на уровне класса, а не какого-то одного объекта.
```js
class MyClass {
static property = ...;
static method() {
...
}
}
```
Технически, статическое объявление это то же самое, что и присвоение классу:
```
MyClass.property = ...
MyClass.method = ...
```
Статические свойства и методы наследуются.
Для class B extends A прототип класса B указывает на A: B.[[Prototype]] = A. Таким образом, если поле не найдено в B, поиск продолжается в A.
## Статические свойства
Статические свойства также возможны, они выглядят как свойства класса, но с static в начале:
```js
class Article {
static publisher = "Илья Кантор";
}
alert( Article.publisher ); // Илья Кантор
```
Это то же самое, что и прямое присваивание Article:
```
Article.publisher = "Илья Кантор";
```
## Наследование статических свойств и методов
Статические свойства и методы наследуются.