我一直在寻找一种方法来跟踪 Javascript 中程序的本地和全局变量的值。 编辑/附加信息:该程序已经编写,因此我追溯添加此状态跟踪。我需要能够访问程序中任何变量的当前或最新值(即使在包含它的函数已完成运行时的情况)。我目前的计划是执行以下操作:
创建一个 AST 并将其中的所有变量添加到全局“状态维护者”对象中。每个变量都会在对象中获得唯一的条目名称,以便函数
foo()
中的变量x
与函数foo()
中的另一个变量x
区分开来。函数bar()
。每次在程序中更新变量时,状态维护器对象中的变量值也会更新。
我将把代码注入(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/