vbScript eval()使用Function或Sub

时间:2012-12-03 12:56:43

标签: asp-classic vbscript

我正在努力完成以下任务:

假设我有一个返回值的函数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)

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

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

有谁知道这是否可行?

2 个答案:

答案 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是正确的。我有一些其他语法问题。它确实有效。谢谢大家的帮助。