The purpose of a callback is to execute another function. In your case, you are recursively calling the test() function as an argument to the callback function, which will obviously lead into a stack overflow and deadlock the app. The whole point of the callback variable is to do something like this:
function test (call_me_back)
call_me_back.call("arg1", "arg2"); //<-- call_me_back function has "this" instance as "owner"
call_me_back.apply(this, "arg1", "arg2"); // <-- Like call() but you can specify the owner.
// This is equivalent to what your code does
function test ()
If I were to wager a guess, it looks like you want to create a runtime loop. If you're writing HTML5 compliant code, you should look into window.requestAnimationFrame (API varies on browser - hooray for standards!). If the browser doesn't support that, then setTimeout really is your next best option.
If this is about Node.js, then I have no idea. IMO write a server using a real language (/troll).