Question

This question might be naive as I'm new to ColdFusion programming.

I have a task for which I have written a function, f1, inside a component. I want to call f1 from another function, f2 defined in the same component.

f2 is being called in a cfm file.

My question - Is this the right way to do it? Can I invoke f1 from f2?

I can as well merge f1 into f2, but I would like keep f1 as a separate function.

Was it helpful?

Solution

Yes, you can call f1 from f2 in ColdFusion if both functions are part of the same component. (They don't have to be in the same component, but if they are, the answer is always yes.)

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

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

There are lots of good reasons to call one function from another. It's called function composition.

OTHER TIPS

In Coldfusion 10 and Railo 4, you can create composed functions using the 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!"

(Note: I wrote the Underscore.cfc library)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top