33
44Мы также можем присвоить метод самому классу. Такие методы называются * статическими* .
55
6- В классе такие методы обозначаются ключевым словом ` static ` , например:
6+ В объявление класса они добавляются с помощью ключевого слова ` static ` , например:
77
88``` js run
99class User {
@@ -29,9 +29,11 @@ User.staticMethod = function() {
2929
3030Значением ` this ` при вызове ` User.staticMethod() ` является сам конструктор класса ` User ` (правило "объект до точки").
3131
32- Обычно статические методы используются для реализации функций, принадлежащих классу, но не к каким-то конкретным его объектам .
32+ Обычно статические методы используются для реализации функций, принадлежащих самому классу, а не какому-либо конкретному его объекту .
3333
34- Например, есть объекты статей ` Article ` , и нужна функция для их сравнения. Естественное решение - сделать для этого метод ` Article.compare ` :
34+ Например, есть объекты статей ` Article ` , и нужна функция для их сравнения.
35+
36+ Естественным решением было бы добавить статический метод ` Article.compare ` :
3537
3638``` js run
3739class Article {
@@ -61,9 +63,11 @@ articles.sort(Article.compare);
6163alert ( articles[0 ].title ); // CSS
6264```
6365
64- Здесь метод ` Article.compare ` стоит "над" статьями, как способ их сравнения. Это метод не отдельной статьи, а всего класса.
66+ Здесь метод ` Article.compare ` стоит "над" статьями, как средство для их сравнения. Это не метод статьи, а скорее метод всего класса.
67+
68+ Другим примером может быть так называемый "фабричный" метод.
6569
66- Другим примером может быть так называемый "фабричный" метод. Представим, что нам нужно создавать статьи различными способами :
70+ Скажем, нам нужно несколько способов создания статьи :
6771
68721 . Создание через заданные параметры (` title ` , ` date ` и т. д.).
69732 . Создание пустой статьи с сегодняшней датой.
@@ -99,7 +103,7 @@ alert( article.title ); // Сегодняшний дайджест
99103
100104``` js
101105// предположим, что Article - это специальный класс для управления статьями
102- // статический метод для удаления статьи:
106+ // статический метод для удаления статьи по id :
103107Article .remove ({id: 12345 });
104108```
105109
0 commit comments