ColdFusion:从同一个组件调用cffunction

时间:2009-05-13 14:40:01

标签: coldfusion functional-programming composition

这个问题可能很天真,因为我是ColdFusion编程的新手。

我有一个任务,我在组件中编写了一个函数f1。我想从同一组件中定义的另一个函数f1调用f2

f2正在cfm文件中调用。

我的问题 - 这是正确的方法吗?我可以从f1调用f2吗?

我也可以将f1合并到f2,但我希望将f1作为一个单独的函数。

2 个答案:

答案 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库)