var b=new Function("console.log(a);");

var server,a=1;
var b=new Function("var c=require('express');console.log('require');");
b();
为什么这段js跑不起来。
node报这个错误。
var c=require('express');console.log('require');
^
ReferenceError: require is not defined


var server,a=1;
var b=function(){var c=require('express');console.log('require');};
b();
可以在node下运行。
new Function难道不是和定义function一样吗?

阅读 3.2k
2 个回答

new function创建的作用域是在全局作用域的。而全局作用域上并没有require这个函数,所以就这样了。

require的作用域貌似是局部的?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题