Coldfusion: Invoke cffunction aus der gleichen Komponente
-
21-08-2019 - |
Frage
Diese Frage könnte sein, naiv wie ich Coldfusion Programmierung neu bin.
Ich habe eine Aufgabe, für die ich eine Funktion, f1
geschrieben haben, innerhalb einer Komponente. Ich möchte f1
von einer anderen Funktion aufzurufen, f2
in derselben Komponente definiert ist.
f2
in einer cfm Datei aufgerufen wird.
Meine Frage - Ist das der richtige Weg, es zu tun? Kann ich f1
von f2
aufrufen?
Ich kann auch f1
in f2
verschmelzen, aber ich würde f1
als separate Funktion wie halten.
Lösung
Ja, können Sie f1 von f2 in Coldfusion nennen, wenn beide Funktionen Teil derselben Komponente sind. (Sie müssen nicht in der gleichen Komponente sein, aber wenn sie sind, ist die Antwort immer ja.)
<cffunction name="f2">
...
<cfset result_of_f1 = f1()>
...
</cffunction>
<cffunction name="f1">
...
</cffunction>
Es gibt viele gute Gründe, eine Funktion von einem anderen zu nennen. Es heißt Funktion Zusammensetzung .
Andere Tipps
In Coldfusion 10 und Railo 4, können Sie zusammengesetzt Funktionen erstellen die Underscore.cfc Bibliothek mit :
_ = 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!"
(Anmerkung: Ich schrieb die Underscore.cfc Bibliothek)