SyntaxError: Malformed formal parameter

Message

    SyntaxError: malformed formal parameter (Firefox)

Error type

무엇이 잘못 되었을까요?

코드에는 최소한 두 개의 인수가 전달 된 Function() 생성자가 있습니다. 마지막 인수는 작성중인 새 함수의 소스코드 입니다. 나머지는 모두 새 함수의 인수 목록을 구성합니다.

인수 목록이 어딘가 잘못되었습니다. 아마도 실수로 인수 이름으로 if 또는 var와 같은 키워드를 선택했거나 인수 목록에 갈곳 잃은 구두점이 있을 수 있습니다. 또는 실수로 숫자나 개체와 같은 잘못된 값을 전달한 것일 수 있습니다.

그래, 내 문제가 해결됐어. 근데 왜 말 안해줬어?

틀림 없이 오류 메세지의 표현은 다소 이상한 부분이 있습니다. "공식 매개 변수"는 "함수 인수"를 말하는 좋은 방법입니다. 우리는 "잘못된 형식의 단어를 사용했다"라고 표현 합니다.

Examples

Invalid cases

js
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)

Valid cases

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

See also