Библиотека Cash предоставляет компактную альтернативу jQuery, сохраняя схожий стиль API и манипуляции DOM. Центральным элементом является объект Cash, инкапсулирующий выбранные элементы и методы работы с ними.
Объект Cash представляет собой легковесную структуру, содержащую набор DOM-узлов. С точки зрения реализации это массивоподобный объект, в котором каждый индекс соответствует конкретному элементу, а сама структура поддерживает длину, итерацию и доступ по индексу. Такой подход позволяет применять к выборке элементы управления, похожие на массивные операции.
Ключевые свойства:
length: количество элементов в коллекции.0, 1, 2 и далее):
прямой доступ к отдельным DOM-узлам.Создание экземпляра Cash выполняется вызовом функции выбора. Возвращаемый объект всегда содержит DOM-коллекцию: пустую, если соответствий нет, или полноценный набор найденных узлов. Внутренняя логика нормализует входные данные, преобразуя строки селекторов, HTML-фрагменты или готовые ноды к единому формату.
Все методы Cash определены в прототипе. Это обеспечивает компактность памяти и единый механизм расширения функциональности. Прототип обеспечивает доступ к функциональным категориям: работа с классами, атрибутами, стилями, DOM-операциями, обходом дерева, событием и AJAX-обвязками.
Основные категории методов:
Объект Cash не является полноценным массивом, но предоставляет
методы, позволяющие обходить выборку. Итерабельность достигается
посредством each, map и связанных механизмов.
Это обеспечивает удобную обработку набора узлов без явного
преобразования в массив.
Важные аспекты итерации:
Одним из ключевых преимуществ объектов Cash является поддержка цепочного стиля API. Почти все методы возвращают сам объект или новый объект Cash, если выборка изменилась. Это позволяет формировать цепочки, последовательно трансформирующие набор элементов и повышающие выразительность кода.
Структура Cash позволяет расширять прототип, добавляя новые методы. Это делает объект Cash удобной точкой интеграции пользовательских решений. Расширения не нарушают базовый функционал и могут встраивать дополнительные инструменты вокруг DOM.
Способы расширения:
Каждый экземпляр Cash обеспечивает прямой доступ к реальным DOM-объектам. Отсутствие промежуточных абстракций упрощает интеграцию с нативными API. Допускается чтение и запись свойств, а также взаимодействие с методами узлов.
Особенности доступа:
По сравнению с jQuery объект Cash намного компактнее по объему кода и числу внутренних зависимостей. Упрощённая структура снижает накладные расходы, сохраняя при этом основные возможности для практической работы с DOM.
Причины компактности:
Объект Cash хранит итог выборки, не отслеживая дополнительные состояния. Вся логика манипуляций выполняется поверх существующих данных. Это делает структуру проще, но требует внимательного обращения с динамически изменяемым DOM. Новые элементы не включаются автоматически в прежние коллекции, что соответствует принципу неизменности выборок.
Ключевые свойства структуры:
Объект Cash обеспечивает функциональный и структурный базис библиотеки, определяя стиль и модель взаимодействия с DOM, вокруг которых построены остальные возможности.