У меня есть «библиотека» объектов, которые я хочу загружать «на лету» из базы данных. Каждый объект имеет свои собственные специальные функции, которые вызываются в определенное время в зависимости от типа объекта. В идеале я хотел бы иметь возможность сделать это, хотя было указано, что это не работает:
library = {
"myObj" : {"name" : "myObj", "type" : "myType", "function" : function () { } } //, etc
}
Строка "myObj"
довольно часто передается по моей программе, но мне нужно получить доступ только к определенным значениям объекта за раз, а в некоторых случаях есть определенная функция, которую необходимо запустить. Проблема в том, что я рассматриваю сотни, а со временем и тысячи потенциальных объектов, которые могут существовать с различными функциями.
Каков «правильный» способ хранения функции, которая будет вызываться так. Я знаю, что вызов eval может быть очень небезопасным во время выполнения, позволяя атаковать xss и тому подобное. Я действительно хочу избежать массивного оператора switch или раздутой загрузки дополнительных функций. Я также хотел бы, чтобы решение было как можно более кратким.
Это не может быть первый раз, когда это всплывает. ;/
Спасибо за вашу помощь.