javascript – 如何编写接受callBack函数的函数,并以“安全”的方式运行它?

前端之家收集整理的这篇文章主要介绍了javascript – 如何编写接受callBack函数的函数,并以“安全”的方式运行它?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想写这样一个功能
function doGoodJob(someId,callBackfunction){

// some stuff with someId

// todo: RUN callBackFunction here

}

他们说eval在代码注入方面是’危险的’.

那么编写一个接受回调函数并安全运行的JavaScript函数的最佳实践是什么?

解决方法

你的回调是字符串还是实际的函数

如果它的功能..

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');");
原文链接:https://www.f2er.com/js/153858.html

猜你在找的JavaScript相关文章