在线文档教程
JavaScript
错误 | Errors

Errors: Malformed formal parameter

Errors: Malformed formal parameter

信息

SyntaxError: malformed formal parameter (Firefox)

错误类型

SyntaxError

什么地方出了错?

有一个Function()构造函数在代码中至少传递了两个参数。最后一个参数是你正在创建的新函数的源代码。其余所有组成你的新功能的参数列表。

参数列表以某种方式无效。也许你不小心挑选了一个关键字if或者var作为一个参数名称,或者在你的参数列表中有一些杂乱的标点符号。或者,也许你不小心传递了一个无效的值,如数字或对象。

好的,这解决了我的问题。但是你为什么不首先说呢?

无可否认,错误信息中的措辞有点奇怪。“形式参数”是说“功能参数”的奇特方式。我们使用“malformed”一词,因为所有的Firefox工程师都是19世纪哥特式恐怖小说的粉丝。

例子

无效的情况

var f = Function('x y', 'return x + y;' // SyntaxError (missing a comma) var f = Function('x,', 'return x;' // SyntaxError (extraneous comma) var f = Function(37, "alert('OK')" // SyntaxError (numbers can't be argument names)

有效的情况

var f = Function('x, y', 'return x + y;' // correctly punctuated var f = Function('x', 'return x;' // if you can, avoid using Function - this is much faster var f = function(x) { return x; };