Files
frontend-docs/docs/javascript/06-classes/03-static-option-methods.md
2025-03-25 16:40:25 +03:00

48 lines
2.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 = "Илья Кантор";
```
## Наследование статических свойств и методов
Статические свойства и методы наследуются.
🚀 **Источник: [https://learn.javascript.ru/static-properties-methods](https://learn.javascript.ru/static-properties-methods)**