0

我正在尝试完成以下任务:

假设我有一个myFunc(sStr)返回值的函数。

我想动态调用该函数,我相信我可以通过使用 vbScript Functionseval()execute().

Function myFunc(fString)
    myFunc = "some text in a string. " & fString
End Function

我想通过这样的方式来称呼它:

sDoThis = "response.write myFunc(""blah blah. "")"
execute(sDoThis)

这似乎不起作用(例如,我传入要执行的字符串的部分)。

我需要要执行的字符串是动态的。

有谁知道这是否/如何可能?

4

2 回答 2

5

您应该使用GetRef()来获取“函数指针”的 VBScript 变体:

Option Explicit

Function appendString(sAppend)
  appendString = "constant head " & sAppend
End Function

Dim oFncPtr     : Set oFncPtr = GetRef("appendString")
Dim sFullString : sFullString = oFncPtr("and variable tail")

WScript.Echo sFullString

输出:

constant head and variable tail

这避免了 Eval()/Execute 的低效率和安全风险。

于 2012-12-03T13:35:34.657 回答
0

暗影法师是对的。我还有其他一些语法问题。它确实有效。谢谢大家的帮助。

于 2012-12-09T14:51:47.983 回答