es6,js有个案例 跪求解释,参数怎么成了要执行的函数代码了,如下str

let str = 'return ' + 'Hello ${name}!';
let func = new Function('name', str);
func('Jack') // "Hello Jack!"

Function 构造函数
new Function ([arg1[, arg2[, ...argN]],] functionBody)
参数
arg1, arg2, ... argN
被函数使用的参数的名称必须是合法命名的。参数名称是一个有效的JavaScript标识符的字符串,或者一个用逗号分隔的有效字符串的列表;例如“×”,“theValue”,或“A,B”。
functionBody
一个含有包括函数定义的JavaScript语句的字符串。

这是一种生成函数对象的方式之一

http://blog.csdn.net/sinat_32290679/article/details/69665286

${name} 在es6里面是一种 模板字符串变量的写法。它是不会当做字符串来解析的,会自动认为这个是一个变量。可以看一下阮一峰老师写的ES6教程 模板字符串变量