Вместо использования eval
вы можете сделать:
(new Function(code))();
console.log(forge);
Вывод в консоль почтальона (вы можете открыть его внизу справа):
{
aes:{...}
asn1:{...}
cipher:{...}
...
}
Объяснение: Я не уверен почему, но я просто не мог заставить eval
работать. Я подозреваю, что это связано с глобальной областью использования VM Postman (нет window
, как в браузерах или global
, как в Node.js, но есть pm
глобальный объект).
Функция Конструктор действует подобно функции eval
, но заключает ее в свою внутреннюю область, поэтому внешние переменные не могут быть доступны. Вы можете прочитать больше здесь .
Синтаксис немного сбивает с толку, но, говоря словами, он создает новую функцию и затем вызывает ее. Вокруг new Function(...)
должна быть дополнительная пара скобок, поскольку оператор 'function call' (()
в конце) связывается сильнее, чем оператор 'new'.