1.读取用户的json配置,并执行用户json模型中的方法
const data= {
"methodString": "function(arg1, arg2) { return arg1 + ' ' + arg2; }"
}
const method = new Function('arg1', 'arg2', 'return (' + data.methodString + ')(arg1, arg2);');
method('hello','world')
new Function 构造函数:
Function 构造函数用于创建一个新的函数对象。
它接受多个参数,其中第一个和第二个参数是函数的参数名(在这个例子中是 'arg1' 和 'arg2'),最后一个参数是函数体的字符串表示。
参数名: 'arg1' 和 'arg2' 是传递给新创建的函数的参数名。
函数体: 字符串定义了一个立即执行的函数表达式(IIFE):
javascript
(function(arg1, arg2) {
return arg1 + ' ' + arg2;
})(arg1, arg2);
```
IIFE 的作用是定义一个匿名函数并立即执行它,返回结果。
执行过程:
当你调用 method(arg1, arg2) 时,arg1 和 arg2 会被传递给这个新创建的函数。
函数体内定义的 IIFE 会立即执行,并返回 arg1 + ' ' + arg2 的结果。
示例
假设你调用 method('Hello', 'World'):
arg1 和 arg2 被设置为 'Hello' 和 'World'。
IIFE 被执行:
javascript
(function(arg1, arg2) {
return arg1 + ' ' + arg2;
})('Hello', 'World');
返回值是 'Hello World'。
所以,method('Hello', 'World') 的返回值是 'Hello World'。
总结
new Function('arg1', 'arg2', "...") 创建了一个新的函数,该函数接受两个参数 arg1 和 arg2。
函数体内定义了一个 IIFE,该 IIFE 立即执行并返回 arg1 + ' ' + arg2 的结果。
调用 method('Hello', 'World') 会返回 'Hello World'。