所以我有JScript
脚本s1.js
var objArgs = WScript.Arguments;
WScript.Echo(objArgs.length)
使用WSH运行s1.js
时
我得到了预期的WScript.Arguments
。
但是当我在内部运行s1.js
时会变得棘手。假设我有另一个脚本s2.js
:
var F = new Function(strScript); // strScript is the content of s1.js
(F)("test");
运行s2.js
时,无论使用哪个CLI参数,var objArgs = WScript.Arguments
中定义的s1.js
都会获得与s2.js
相同的参数。
这并不让我感到惊讶,因为我认为var objArgs = WScript.Arguments
是全局的,并由WSH
设置。
s1.js
(s2.js
内部)并将CLI参数传递给它?s1.js
如何区分运行它的两种不同方式并正确阅读其参数?答案 0 :(得分:1)
我不确定WScript,但它似乎是所有Js片段中的全球成员。我已经完成了一些基本测试,事实上,WScript.Arguments在所有实例中是相同的。你的问题的根源在新的Function()调用中,因为第一个N-1参数声明了参数的模板,以及最后一个函数的主体。
这是帮助我的答案 - > response