为什么`Function`的第一个参数拒绝括号?

时间:2017-11-02 14:12:29

标签: javascript

动态创建此功能

var foo = function(argument = myFunc()){
    return argument
}

我写了这段代码。

var funcArgument = "argument = myFunc()"
var funcBody = "return argument"
var foo = Function(funcArgument, funcBody)

但是,我收到了以下错误。

Function arg string contains parenthesis

为什么存在此限制?

为了避免这种限制,可以写成如下,但它太棘手而且不可取。

var funcArgument = "argument = Function`return myFunc\\u0028\\u0029```"
var funcBody = "return argument"
var foo = Function(funcArgument, funcBody)

1 个答案:

答案 0 :(得分:2)

  

为什么存在此限制?

没有充分的理由,这应该按照规范工作。实际上 在Firefox中工作。

V8有an open bug report