1

如果我有

<cfset methodName = "a">
<cfset object = createObject(...)>

如何调用methodName从组件命名的函数object。我会期待一些类似的东西

<cfset object[methodName]()>

就像在 JS 中一样,但这似乎不起作用。我知道我可以使用 a cfinvoke,但是我认为我不需要深入研究我不想使用该标签的原因(现在将其用作临时修复)。

4

4 回答 4

2

cfinvokeAdobe ColdFusion 10+ 中也有invoke()基于脚本的代码。

于 2013-04-22T12:14:02.880 回答
2

您可以将未知/动态方法设置为对象中的显式键并从该键执行它:

<cfset methodName = "a">
<cfset object = createObject(...)>
<cfset object.doMethod = object[methodName]>
<cfset object.doMethod()>

仍然不是很优雅,但它避免了<cfinvoke>and evaluate()

于 2013-04-22T16:42:59.393 回答
0

这很笨拙,但是,您始终可以将代码行写入 .cfm 文件,然后 cfinclude 它。

于 2013-04-22T13:45:40.793 回答
-1

cfinvokeevaluate('object.#a#()')(确保您可以信任 a)

于 2013-04-22T12:13:15.233 回答