Как правильно «сериализовать» функции в javascript для последующего использования

У меня есть «библиотека» объектов, которые я хочу загружать «на лету» из базы данных. Каждый объект имеет свои собственные специальные функции, которые вызываются в определенное время в зависимости от типа объекта. В идеале я хотел бы иметь возможность сделать это, хотя было указано, что это не работает:

library = {
  "myObj" : {"name" : "myObj", "type" : "myType", "function" : function () { } } //, etc
}

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

Каков «правильный» способ хранения функции, которая будет вызываться так. Я знаю, что вызов eval может быть очень небезопасным во время выполнения, позволяя атаковать xss и тому подобное. Я действительно хочу избежать массивного оператора switch или раздутой загрузки дополнительных функций. Я также хотел бы, чтобы решение было как можно более кратким.

Это не может быть первый раз, когда это всплывает. ;/

Спасибо за вашу помощь.

6
задан Kirk 28 July 2012 в 02:53
поделиться