在 Javascript 中将字符串(是一个函数)转换回函数
Convert string (was a function) back to function in Javascript
我在下面有这个函数作为字符串。 如何将其转换回函数? 我正在从 JQuery 事件中提取事件处理程序,我想将它们存储为字符串然后将它们转换回来,因为它们将保存在 mySQL 中
function () {
if (!GActiveClick) {
return;
}
SaveProduct();
}
var func = new Function(theFunctionString);
func();
MDN:
新函数 ([arg1[, arg2[, ...argN]],] functionBody)
参数
arg1, arg2, ...
氩氮 函数用作正式参数名称的名称。每个都必须是对应于有效 JavaScript 标识符的字符串或用逗号分隔的此类字符串的列表;例如"x"、"theValue"或"a,b"。功能主体
一个字符串,其中包含构成函数定义的 JavaScript 语句。
更新:
这一切都是非常糟糕的做法!
你应该有一个泛型函数来获取构建你想要的东西的参数。唯一改变的是参数。将这些参数存储在您拥有的数据库中。
使用 new Function()
时使用该return
并执行它,如下所示
new Function('return ' + fn_string)();
例:
function hackerAll(a, b) {
var result = a*b
return result
}
class Doggy{
method1(){
return 123123*342343
}
}
var fn_string = hackerAll.toString()
var back_to_fn = new Function(`return ${fn_string}`)() //This restore the function with name, params and all, even es7 class works
var class_string = Doggy.toString()
var back_to_class = new Function(`return ${class_string}`)()
console.log('fn as it', hackerAll)
console.log('fn string', fn_string)
console.log('restored fn', back_to_fn)
console.log('restored class', back_to_class)
Javascript 为函数提供了 new- 关键字
var foo = new Function("arg", ... , "<implementation string>");
例如,请参阅此处...http://www.permadi.com/tutorial/jsFunc/
相关文章:
- 如何在将Node异步函数转换为promise时使用Q库
- 如何分解jQuery"toggle”;函数转换为separate“;显示“;以及“;隐藏“;功能
- 将函数转换为jQuery插件
- jquery递归函数转换为非递归函数
- jQuery函数转换为MooTools
- 将javascript函数转换为jquery
- 将Window Onload函数转换为非阻塞
- 如何将下面的递归函数转换为纯函数
- 将jquery函数转换为js
- 如何将这个递归函数转换为迭代函数
- 将递归函数转换为异步 CPS 实现 (javascript)
- 通过在JavaScript中将函数转换为对象可以实现什么
- 从JavaScript函数转换为jQuery
- JS:将单参数函数转换为可链接函数
- 如何将此函数转换为 Angular 指令
- 从控制台中的工作函数转换为工作脚本.(请参阅编辑)
- 将图像的 onError 函数转换为返回函数
- jQuery:将每个函数转换为 for 循环
- 如何将 JavaScript forEach 循环/函数转换为 CoffeeScript
- Javascript 将声明为函数字典的函数转换为原型