尝试在 Chrome 和 Firefox 中运行以下命令
(new Function('a', 'return 1;')).toString()
/**/
除非没有参数,否则Chrome 在参数列表的末尾添加一个。有什么理由吗?
两种浏览器似乎都将新创建的函数命名为名称,即“匿名”。为什么要命名它?当然,它不会给所有匿名函数起这个名字......如果你只是
(function(a) { return 1; }).toString()
那么你得到的正是function(a) { return 1; }
你所期望的。此外,我不能anonymous
从函数内部调用 - 所以它有一个名称但它不包含在范围内?