【问题标题】:How to get console.log output from eval()?如何从 eval() 获取 console.log 输出?
【发布时间】:2017-09-26 03:36:16
【问题描述】:

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

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

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

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

但我收到了undefined 的回复。有没有办法让我做到这一点?

【问题讨论】:

标签: javascript console.log


【解决方案1】:

这是不可能的,因为console.log() 只返回 undefined,但是您可以创建一个返回某些内容的函数。

例子:

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

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

希望这会有所帮助。

【讨论】:

  • 这进入了一个危险的领域,与预定义的东西混在一起。
  • 很好的答案。 :)
  • 绝妙的解决方案!尽管它与预定义的功能相混淆,但它非常有用!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-07
  • 2016-01-15
  • 2018-04-14
  • 2014-01-21
  • 2021-12-30
  • 2021-05-24
  • 1970-01-01
相关资源
最近更新 更多