javascript - 如何在 Javascript 中跟踪局部变量值?

标签 javascript node.js global-variables state

我一直在寻找一种方法来跟踪 Javascript 中程序的本地和全局变量的值。 编辑/附加信息:该程序已经编写,因此我追溯添加此状态跟踪。我需要能够访问程序中任何变量的当前或最新值(即使在包含它的函数已完成运行时的情况)。我目前的计划是执行以下操作:

  1. 创建一个 AST 并将其中的所有变量添加到全局“状态维护者”对象中。每个变量都会在对象中获得唯一的条目名称,以便函数 foo() 中的变量 x 与函数 foo() 中的另一个变量 x 区分开来。函数 bar()

  2. 每次在程序中更新变量时,状态维护器对象中的变量值也会更新。

我将把代码注入(inject)到我试图跟踪其值的 JS 文件中,以便执行此操作。

我将确保跟踪引用分配,并在适用时将更改传播到所有受影响的变量。例如,当下面更新 a 时,b 也应该更新。

var a = 'foo'
var b = a
a = 'bar' 

这种方法有意义吗?还有其他我应该特别注意的技术考虑因素吗?是否有任何库已经实现了此功能?

最佳答案

你需要使用像 Redux 这样的状态管理工具,但如果你的应用程序不是那么大,你可以使用 rxjs 库来管理应用程序中的数据流,这篇文章会有所帮助 https://medium.com/@mohandere/rxjs-5-in-5-minutes-1c3b4ed0d8cc

如果您不需要使用任何库,只需实现观察者模式,如这篇文章https://jsmanifest.com/observer-pattern-in-javascript

关于javascript - 如何在 Javascript 中跟踪局部变量值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60128065/

相关文章:

javascript - 无法通过 SoundCloud API 获取轨道

javascript - 从种子/ key 创建大型数组/数据

javascript - Node : Data Transformers like in Laravel PHP Framework

php - 在函数内部声明一个全局变量

c - 打印所有全局变量/局部变量?

javascript - 是否有一个 JavaScript/Jquery 组件可以像 Eclipse 一样创建工作区?

javascript - 在同一个ajax调用中上传和下载图像值得吗?

javascript - 我如何使流体 float :left layout?

node.js - 在多个浏览器上运行测试(顺序)

lisp - "Fake"Common Lisp 中的全局词法变量