spooky_2020
@spooky_2020
А меня Сережа зовут.

Как связать объект с функцией для его обработки?

Есть функция совершающая манипуляции с определенным типом объектов из определенной коллекции.
Сначала я передаю в "фабрику" класс-конструктор и функцию предназначенную для работы с экземплярами
этого класса. Затем, при создании экземпляра нужно что бы он знал какая функция именно для его типа,
так как в коллекции будут объекты разных типов, для работы с которыми предназначены другие функции.

Нужно что то типа ссылки на функцию (как в С или С++). Использовать подобие параллельных массивов не очень хочется.
Возможно стоит обернуть функцию в отдельный объект и присваивать ссылку уже на него? В JS это вроде так работает?
В прототип записывать нельзя - функция должна быть связана только с объектами коллекции, а не со всеми экземплярами.
  • Вопрос задан
  • 116 просмотров
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
В js можно передавать ссылку на функцию.

Не совсем понятно что именно вы хотите сделать, но возможно вам подойдет WeakMap, где ключами будут ваши объекты, а значениями функции.

Или передавайте в вашу фабрику набор функций, и научите ее применять нужную в зависимости от типа.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект