new Function
- 一种创建函数的方法。它很少被使用,但有些时候只能选择它。
直接上语法
const funBody = `
return {[key]: name}
`
// 以下几种方式都可以
// const fn = new Function('key, name', funBody);
// const fn = new Function('key , name', funBody);
const fn = new Function('key', 'name', funBody);
fn('name', '炒青菜'); // { name: '炒青菜'}
- 感觉挺有意思的,我们在编程时候不知道
funBody(函数体, 从服务器返回),但是在执行的过程中知道了,就需要使用new Funciton;- 但是使用时候有需要注意下
- 通过函数体无法访问外部变量, 使用时候需要显示的传入
const fn1 = function() { const myName = '炒青菜' const funBody = ` return myName ` const fn2 = new Function(funBody); const fn3 = new Function('myName', funBody); fn2() // myName is not defined 实际上这里读的是全局作用域下的myName fn3(myName) // 炒青菜 }
- 但是使用时候有需要注意下