1. 以函数为回调参数(建议使用)
var callbackParam = {test:"callbackParam"};asysc( asyscCallback, callbackParam);//回调函数function asyscCallback(data, callbackParam){ console.info("called asysc successfully");}/** * callback 回调函数 * paramObj 回调参数 */function asysc(callbackFunc, callbackParam){ var data = {data:"data"}; callbackFunc.apply(this, [data, callbackParam]); //callbackFunc(data, callbackParam);}
2.以函数名(字符串)为回调参数
需要用到Function: var func = new Function('param1', 'param2',...,'paramN', 'funcBody');
var callbackParam = {test:"callbackParam"};asysc( "asyscCallback", callbackParam);//回调函数function asyscCallback(data, callbackParam){ console.info("called asysc successfully");}/** * callback 回调函数 * paramObj 回调参数 */function asysc(callbackFunc, callbackParam){ var data = {data:"data"}; var strFuncName = "return " + callbackFunc + "(data, callbackParam)"; func = new Function('data', 'callbackParam', strFuncName); func(data, callbackParam);}