ColdFusion:从同一组件调用cffunction

4
这个问题可能很幼稚,因为我是ColdFusion编程的新手。
我有一个任务,我已经在组件内部编写了一个名为f1的函数。我想从另一个函数f2中调用f1,并且这两个函数都定义在同一个组件中。 f2在cfm文件中被调用。
我的问题是 - 这样做是否正确?我可以从f2中调用f1吗?
我也可以将f1合并到f2中,但我想保持f1作为一个单独的函数。
2个回答

12

如果f1和f2在同一个ColdFusion组件中,那么是可以从f2中调用f1的。(它们不一定要在同一个组件中,但如果在同一个组件中,答案总是肯定的。)

 <cffunction name="f2">
    ...
    <cfset result_of_f1 = f1()>
    ...
 </cffunction>

 <cffunction name="f1">
    ...
 </cffunction>

从一个函数调用另一个函数有很多好处,这被称为函数组合


好的,我现在明白了。就像这样:<cfinvoke method="functionName" ...> </cfinvoke>谢谢。 - Arnkrishn
3
除非需要一个新的对象实例,否则实际上不需要使用cfinvoke来调用第二个函数。你可以像调用其他函数一样简单地调用它(就像Patrick在他的示例中展示的那样)。 - Ben Doom
救了我的一天...我已经在这个.f1()里卡了半个小时了。 - frequent

0
在 Coldfusion 10 和 Railo 4 中,您可以使用 Underscore.cfc 库 创建组合函数:
_ = 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库的作者)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接