2011-04-08 86 views

回答

23

是您的回調字符串或實際的功能?

如果其功能..

function doGoodJob(someId,callbackFunction) 
{ 
    callbackFunction(); 
} 

doGoodJob(1,function(){alert('callback');}); 

如果它是一個字符串,你可以使用Function構造。

function doGoodJob(someId,callbackFunction) 
{ 
    var func = new Function(callbackFunction) 
    func(); 
} 
doGoodJob(1,"alert('test');"); 

或測試兩個..

function doGoodJob(someId,callbackFunction) 
{ 
    var func = (typeof callbackFunction == 'function') ? 
     callbackFunction : new Function(callbackFunction); 

    func(); 
} 

doGoodJob(1,function(){alert('callback');}); 
doGoodJob(1,"alert('test');"); 
2

這應該工作:

function doGoodJob(simeOd, callBackFunction){ 
    /** Do stuff **/ 
    callBackFunction(); 
} 

快速小提琴:http://jsfiddle.net/pS67X/

2

雖然晚於這個話題,只是想阿迪一些事情。 以上解決方案適用於警報或傳遞函數作爲參數,但不適用於以下情況。

doGoodJob(1, "someCallbackFunction"); 
function someCallBackFunction() { 
    alert("im called"); 
} 

代替如果使用的eval(callbackFunction參數)如下面

function doGoodJob(someId,callbackFunction) { 
    var func = (typeof callbackFunction == 'function') ? 
    callbackFunction : eval(callbackFunction); 

    func(); 
} 
doGoodJob(1,someCallBackFunction); 
doGoodJob(1,"someCallBackFunction"); 
相關問題