我创建了一个属于特定类的对象。
var schCom1 = Server.CreateObject(ArchiveProgID);
现在,该对象调用动态决定的方法。
fnName += "(";
for (counter=0;counter<fnArgs.length;counter++)
{
if(counter > 0)
fnName += ",";
fnName += fnArgs[counter];
}
fnName += ")";
writeComment("Ready to call method:" + "schCom1." + fnName);
// according to the type of recurrance, call method
eval("schCom1."+ fnName);
此评估电话是否可以替换?
任何帮助都是有价值的。
提前致谢。
Tazim。
答案 0 :(得分:3)
前提是fnName确实是schCom1对象的方法名称:
schCom1[fnName].apply(schCom1,fnArgs);
基本上,函数对象的apply
方法允许您调用函数并提供上下文(父对象)和参数。并且apply
方法期望函数参数作为数组提供,这在这种情况下很有用。
有关详细信息,请参阅apply
方法的文档:
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/function/apply
还有call
方法做了类似的事情,但期望函数参数作为常规参数列表:
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/function/call
答案 1 :(得分:2)
您可以使用更简单的
schCom1[fname].apply(schCom1, fnArgs)
将替换那里的所有代码