javascript - 如何从 eval() 获取 console.log 输出?

标签 javascript console.log

我正在使用 eval() 从字符串运行脚本。下面是代码:

eval('console.log("hello")');

我将从控制台输出中得到 hello。我想知道是否可以将 hello 保存到当前上下文中的变量中。所以我正在寻找这样的东西:

const output = eval('console.log("hello")');//我希望控制台输出从 eval() 函数返回。

但是我得到了一个undefined 响应。我有办法做到这一点吗?

最佳答案

这是不可能的,因为 console.log() 只返回未定义的,但是你可以创建一个函数来返回一些东西。

例子:

console.oldLog = console.log;
console.log = function(value)
{
    console.oldLog(value);
    return value;
};

const output = eval('console.log("hello")');

希望这会有所帮助。

关于javascript - 如何从 eval() 获取 console.log 输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46417440/

相关文章:

javascript - 两个单独的 HTML 元素上的链接 'active' 状态

javascript - 选择表单 Material UI,无法覆盖占位符

javascript - chrome localstorage 中的 google_experiment_mod 是什么意思

javascript - 如何在 console.log 中显示彩虹消息

node.js - 如何摆脱 Node.js util.inspect 输出中的换行符?

javascript - 将选中的复选框的所有项目记录到控制台

javascript - 单击时如何确定一系列元素中元素的 DOM 位置

javascript - 使用 Backbone.js 将表单输入序列化为 JSON

javascript - Console.log不输出json

angularjs - 只有在打开控制台后页面才能在 IE9 中正常工作。为什么?