SyntaxError: Malformed formal parameter - JavaScript 编辑
信息
SyntaxError: malformed formal parameter (Firefox)
错误类型
哪里错了?
在至少带有两个参数的 Function()
构造器中它的最后一个参数是创建的新函数的源代码。剩下的都是新函数的参数。
构造器的参数有些情况下是无效的。 也许是你不小心用了一个关键字 if
或 var
作为参数名称,或者在参数列表中有一些杂乱的标点符号。 或者也许你不小心传递了一个无效的值,比如数字或对象。
好吧,这解决了我的问题。但是为什么不开始就说明白呢?
诚然,错误信息中的措辞稍微有些奇怪。"Formal parameter" 是 "function argument" 的另一种优美的同义。 我们使用 “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; };
相关链接
Function()
- About functions
- Frankenstein by Mary Wollstonecraft Shelley, full e-text ("Cursed (although I curse myself) be the hands that formed you! You have made me wretched beyond expression. You have left me no power to consider whether I am just to you or not. Begone! Relieve me from the sight of your detested form.")
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论