我想写这样一个功能:
function doGoodJob(someId,callBackfunction){ // some stuff with someId // todo: RUN callBackFunction here }
他们说eval在代码注入方面是’危险的’.
解决方法
你的回调是字符串还是实际的函数?
如果它的功能..
function doGoodJob(someId,callbackFunction) { callbackFunction(); } doGoodJob(1,function(){alert('callback');});
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');");