这个问题可能很天真,因为我是ColdFusion编程的新手。
我有一个任务,我在组件中编写了一个函数f1
。我想从同一组件中定义的另一个函数f1
调用f2
。
f2
正在cfm文件中调用。
我的问题 - 这是正确的方法吗?我可以从f1
调用f2
吗?
我也可以将f1
合并到f2
,但我希望将f1
作为一个单独的函数。
答案 0 :(得分:12)
是的,如果两个函数都属于同一个组件,则可以在ColdFusion中从f2调用f1。 (它们不必属于同一个组件,但如果它们是,则答案总是肯定的。)
<cffunction name="f2">
...
<cfset result_of_f1 = f1()>
...
</cffunction>
<cffunction name="f1">
...
</cffunction>
从另一个函数调用一个函数有很多充分的理由。它被称为function composition。
答案 1 :(得分:0)
在Coldfusion 10和Railo 4中,您可以使用Underscore.cfc library创建组合函数:
_ = new Underscore();// instantiate the library
f1 = function (message) {
return "hello " & message;
};
f2 = function (toOutput) {
writeOutput(toOutput);
};
sayHelloTo = _.compose(f2, f1);
sayHelloTo("world!");// output: "hello world!"
(注意:我写了Underscore.cfc库)