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; };