--- 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 = "Илья Кантор"; ``` ## Наследование статических свойств и методов Статические свойства и методы наследуются.