Статические вспомогательные методы
Часть раздела Объектно-ориентированное программирование путешествия по JavaScript на Coddy — урок 33 из 56.
Статические методы — это вспомогательные функции, которые принадлежат самому классу, а не его экземплярам. Они полезны для функций, которым не требуется доступ к данным конкретного экземпляра.
Давайте создадим класс со статическим вспомогательным методом:
class MathHelper {
// Определяем статический метод
static square(number) {
return number * number;
}
}Чтобы вызвать статический метод, используйте имя класса напрямую:
// Вызов статического метода без создания экземпляра
const result = MathHelper.square(5);
console.log(result); // 25Обратите внимание, что нам не потребовалось создавать новый экземпляр с помощью new MathHelper(). Статические методы идеально подходят для вспомогательных функций, которые выполняют операции, не требуя данных экземпляра.
Задание
Создайте класс с именем StringUtils со статическим методом capitalize, который принимает строку в качестве аргумента и возвращает ту же строку с заглавной первой буквой. Например, если входные данные — "javascript", метод должен вернуть "Javascript". Экспортируйте этот класс.
- Проверьте, пуста ли строка:
if (!str || str.length === 0)(Без этой проверки пустая строка может вызвать проблемы).!strпроверяет наnull/undefined(предотвращает ошибки)str.length === 0проверяет на пустую строку (возвращает "" вместо сбоя)
- Получите первый символ:
str.charAt(0) - Сделайте его заглавным:
.toUpperCase() - Получите остальную часть строки:
str.slice(1)(с позиции 1 до конца) - Объедините: заглавный первый символ + остальная часть строки
Шпаргалка
Статические методы — это вспомогательные функции, которые принадлежат самому классу, а не его экземплярам. Им не требуется доступ к данным конкретного экземпляра.
Определите статический метод, используя ключевое слово static:
class MathHelper {
static square(number) {
return number * number;
}
}Вызывайте статические методы непосредственно у класса, не создавая экземпляр:
const result = MathHelper.square(5);
console.log(result); // 25Полезные строковые методы для статических утилит:
str.charAt(0)— получает первый символstr.toUpperCase()— преобразует в верхний регистрstr.slice(1)— получает подстроку с позиции 1 до конца!str || str.length === 0— проверяет на null/undefined или пустую строку
Попробуйте сами
import { StringUtils } from './stringUtils.js';
// Не изменяйте код ниже
console.log(StringUtils.capitalize("programming"));В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Объектно-ориентированное программирование
1Объекты и ключевое слово this
Краткий обзор: ОбъектыДобавление методов в объектыПонимание ключевого слова thisФункции-конструкторыКлючевое слово newИтоговое испытание7Наследование и ключевое слово extends
НаследованиеОтношение «is-a»Ключевое слово extendsМетод super()Наследование свойств и методовИтоговое испытание10Полиморфизм
Что такое полиморфизм?Переопределение унаследованных методовИспользование superИтоговое задание13Композиция против наследования
Отношения «has-a» и «is-a»Ограничения глубокого наследованияСоздание объектов2Организация кода
Что такое модули?Экспорт с помощью exportИмпорт с помощью importDefault против именованных экспортов5Инкапсуляция и доступ
ИнкапсуляцияПубличные и приватные поля классовПриватные методыЗадание на повторение8Организация кода ООП
Организация классов в модули11Проект: Отрисовщик фигур
Настройка: Класс Shape и экспортНаследование класса Circle14Система управления библиотекой
Проектирование библиотекиКласс Book с использованием композиции6Проект: Простой банковский счет
Класс BankAccountПополнение и снятие средств9Статические методы и свойства
Уровень класса против уровня экземпляраСтатические свойстваСтатические вспомогательные методыЗадание на закрепление