Javascript 在Firefox DevTools变量视图中显示值而不是getter/setter函数

Javascript 在Firefox DevTools变量视图中显示值而不是getter/setter函数,javascript,firefox,firefox-developer-tools,Javascript,Firefox,Firefox Developer Tools,检查在Firefox变量视图中使用getter/setter函数作为属性(用定义)的JavaScript对象时,它会显示为该特定属性定义的getter和setter函数: 在这个视图中,有没有办法显示实际内容而不是函数 编辑:正如nils评论的那样,从技术上来说,查看实际内容意味着调用getter。因为Firefox 65,所以可以通过日志对象中getter旁边的按钮调用getter 这是在resp中实施的 在Firefox 65之前的版本中,您可以通过命令行直接调用getter来输出get

检查在Firefox变量视图中使用getter/setter函数作为属性(用定义)的JavaScript对象时,它会显示为该特定属性定义的getter和setter函数:

在这个视图中,有没有办法显示实际内容而不是函数


编辑:正如nils评论的那样,从技术上来说,查看实际内容意味着调用getter。

因为Firefox 65,所以可以通过日志对象中getter旁边的按钮调用getter

这是在resp中实施的


在Firefox 65之前的版本中,您可以通过命令行直接调用getter来输出getter的返回值。

另一种方法是使用此解决方法,而不是记录对象:

console.log(objectVar)
您可以将当前状态指定给空对象,然后记录它:

console.log(Object.assign({}, objectVar)) // works on all browsers
// OR
console.log({...objectVar}) // es6 only

旁注:写这篇文章很快就会变得乏味,所以如果你使用代码编辑器(Atom/VScode),那么你就可以

下面是一个示例代码段,您可以在其中键入“l”,然后按tab键:

'.source.js':
  'console.log object':
    'prefix': 'l'
    'body': "console.log('${1:variable}', Object.assign({}, ${1:variable}))"
或ES6:

'.source.js':
      'console.log object':
        'prefix': 'l'
        'body': "console.log('${1:variable}', {...${1:variable}})"

Firefox将不正确地显示从例如API收集的对象属性,但在上下文中立即创建的值将正确显示。 我找到了使用lodash库()的解决方法 或者最终可以使用另一个js框架来实现,它能够完全克隆对象

  console.dir(_.cloneDeep(objectToShowInConsole))

希望能有所帮助。

我也希望能得到这个问题的答案!(假设实际内容是指调用getter来获取当前值),对调试器的期望是什么?@Brian问题是:Chrome开发工具如何实现这种行为?Chrome开发工具显示值,但有时不是当前值,有时调用getter。简单示例:添加
obj.counter
作为
var obj={i:0的监视表达式,获取计数器(){返回this.i++;}}
,然后在面板之间切换。您将看到该值在增加。当通过命令行执行
obj.counter
时,watch expression.Btw中的值不会更新。Firebug始终显示当前值,但因此多次调用getter,这会增加值。看。根据上次的评论,问题只是。问题又被转移了-现在在@dotnetCarpenter,谢谢你的提示!我已经相应地更新了答案。