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

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы