我开发了一个浏览器扩展,将补丁应用于原始函数,如下所示:
eval('sourceFunction=' + sourceFunction.toString().replace(/foo/g, 'bar'));
Mozilla附加组件目录的审稿人禁止使用eval方法作为不安全的方法。有没有其他方法来同样修补功能?
答案 0 :(得分:1)
如果你必须将原始功能的内容用作字符串,那么不,可能不是。
虽然您可以使用new Function
代替:
sourceFunction = new Function("return " + sourceFunction.toString().replace(/*...*/))();
......禁止eval
的任何合理政策也可能会禁止new Function
..