首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Errors: Malformed formal parameter

信息

代码语言:javascript
复制
SyntaxError: malformed formal parameter (Firefox)

错误类型

SyntaxError

什么地方出了错?

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

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

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

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

例子

无效的情况

代码语言:javascript
复制
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)

有效的情况

代码语言:javascript
复制
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; };

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com