Я столкнулся с ситуацией, когда мне нужен доступ к объекту javascript с сервера. Сервер возвращает имя строки функции или объекта и на основе других метаданных я буду оценивать объект по-разному.
Первоначально я оценивал (eval([string])), и все было в порядке. Недавно я обновлял функцию, чтобы не использовать eval для обеспечения спокойствия в безопасности, и я столкнулся с проблемой с объектами/функциями с именами.
В частности, я попытался заменить eval([name]) на window[name] для доступа к объекту через синтаксис квадратной скобки из глобального объекта vs eval.
Но у меня возникла проблема с объектами с именами, например:
var strObjName = 'namespace.serviceArea.function';
// if I do
var obj = eval(strObjName); // works
// but if I do
var obj = window[strObjName]; // doesn't work
Может ли кто-нибудь придумать хорошее решение, чтобы избежать использования eval с именами строк?