vbScript eval()使用Function或Sub

GWR*_*GWR 1 vbscript asp-classic

我想完成以下事项:

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

我想动态调用该函数,我相信我可以通过使用vbScript函数eval()或其中一个构建来完成execute().

Function myFunc(fString)
    myFunc = "some text in a string. " & fString
End Function
Run Code Online (Sandbox Code Playgroud)

我想通过以下方式调用它:

sDoThis = "response.write myFunc(""blah blah. "")"
execute(sDoThis)
Run Code Online (Sandbox Code Playgroud)

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

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

有谁知道这是否可行?

Ekk*_*ner 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
Run Code Online (Sandbox Code Playgroud)

输出:

constant head and variable tail
Run Code Online (Sandbox Code Playgroud)

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