我正在努力完成以下任务:
假设我有一个返回值的函数myFunc(sStr)
。
我想动态调用该函数,我相信我可以通过使用vbScript函数eval()
或execute()
中的一个构建来完成。
Function myFunc(fString)
myFunc = "some text in a string. " & fString
End Function
我想通过这样的方式来打电话:
sDoThis = "response.write myFunc(""blah blah. "")"
execute(sDoThis)
这似乎不起作用(例如我传入要执行的字符串的部分)。
我需要要执行的字符串是动态的。
有谁知道这是否可行?
答案 0 :(得分: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的低效率和安全性风险。
答案 1 :(得分:0)
Shadow Wizard是正确的。我有一些其他语法问题。它确实有效。谢谢大家的帮助。