Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 定义var时运行函数_Javascript_Eval_User Input_User Defined Functions - Fatal编程技术网

Javascript 定义var时运行函数

Javascript 定义var时运行函数,javascript,eval,user-input,user-defined-functions,Javascript,Eval,User Input,User Defined Functions,我正在做一个项目,很多用户生成的代码都是受这个视频启发的。我想做的是计算一段用户输入代码,并在每次定义一个变量、乘以两个变量或发生其他操作时运行一个函数 在JS中有没有办法做到这一点 显然,我可以在字段中搜索变量。。。然后阅读接下来的内容,然后对这些信息做任何我需要做的事情,但是,出于一些原因,我宁愿在我实际对执行的某些内容做出反应的地方合法地做这些事情。您可以在某些版本的Javascript(也称为代理)中使用。通过编写自己的代码,您可以重新定义对象发生变化时发生的情况 如果这是不可能的,但您

我正在做一个项目,很多用户生成的代码都是受这个视频启发的。我想做的是计算一段用户输入代码,并在每次定义一个变量、乘以两个变量或发生其他操作时运行一个函数

在JS中有没有办法做到这一点

显然,我可以在字段中搜索变量。。。然后阅读接下来的内容,然后对这些信息做任何我需要做的事情,但是,出于一些原因,我宁愿在我实际对执行的某些内容做出反应的地方合法地做这些事情。

您可以在某些版本的Javascript(也称为代理)中使用。通过编写自己的代码,您可以重新定义对象发生变化时发生的情况

如果这是不可能的,但您事先知道变量的名称,您可以使用,或使用的多边形填充来实现相同的效果


如果您不知道变量名将是什么,我建议通过解析器运行用户定义的Javascript,比如获取AST。因此,当您看到定义或提升变量时,可以将任意语法直接注入AST,然后编译回工作代码。您将寻找类型为VariableDeclaration的JSON对象。

Esprima看起来很有希望。谢谢