I’m new to ajax and callback functions, please forgive me if i get the concepts all wrong.
Problem: Could i send a callbackfunction as a parameter to another function that will execute the callback?
function firstFunction(){ //some code //a callback function is written for $.post() to execute secondFunction("var1","var2",callbackfunction); } function secondFunction(var1, var2, callbackfunction) { params={} if (event != null) params = event + '&' + $(form).serialize(); // $.post() will execute the callback function $.post(form.action,params, callbackfunction); }
Advertisement
Answer
Yup. Function references are just like any other object reference, you can pass them around to your heart’s content.
Here’s a more concrete example:
function foo() { console.log("Hello from foo!"); } function caller(f) { // Call the given function f(); } function indirectCaller(f) { // Call `caller`, who will in turn call `f` caller(f); } // Do it indirectCaller(foo); // logs "Hello from foo!"
You can also pass in arguments for foo
:
function foo(a, b) { console.log(a + " + " + b + " = " + (a + b)); } function caller(f, v1, v2) { // Call the given function f(v1, v2); } function indirectCaller(f, v1, v2) { // Call `caller`, who will in turn call `f` caller(f, v1, v2); } // Do it indirectCaller(foo, 1, 2); // logs "1 + 2 = 3"