SyntaxError: Malformed formal parameter

Message

SyntaxError: malformed formal parameter (Firefox)

Error type

무엇이 잘λͺ» λ˜μ—ˆμ„κΉŒμš”?

μ½”λ“œμ—λŠ” μ΅œμ†Œν•œ 두 개의 μΈμˆ˜κ°€ 전달 된 Function() μƒμ„±μžκ°€ μžˆμŠ΅λ‹ˆλ‹€. λ§ˆμ§€λ§‰ μΈμˆ˜λŠ” μž‘μ„±μ€‘μΈ μƒˆ ν•¨μˆ˜μ˜ μ†ŒμŠ€μ½”λ“œ μž…λ‹ˆλ‹€.  λ‚˜λ¨Έμ§€λŠ” λͺ¨λ‘ μƒˆ ν•¨μˆ˜μ˜ 인수 λͺ©λ‘μ„ κ΅¬μ„±ν•©λ‹ˆλ‹€.

인수 λͺ©λ‘μ΄ μ–΄λ”˜κ°€ μž˜λͺ»λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ•„λ§ˆλ„ μ‹€μˆ˜λ‘œ 인수 μ΄λ¦„μœΌλ‘œ if λ˜λŠ” var와 같은 ν‚€μ›Œλ“œλ₯Ό μ„ νƒν–ˆκ±°λ‚˜ 인수 λͺ©λ‘μ— 갈곳 μžƒμ€ κ΅¬λ‘μ μ΄ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. λ˜λŠ” μ‹€μˆ˜λ‘œ μˆ«μžλ‚˜ κ°œμ²΄μ™€ 같은 잘λͺ»λœ 값을 μ „λ‹¬ν•œ 것일 수 μžˆμŠ΅λ‹ˆλ‹€.

그래, λ‚΄ λ¬Έμ œκ°€ 해결됐어. 근데 μ™œ 말 μ•ˆν•΄μ€¬μ–΄?

ν‹€λ¦Ό 없이 였λ₯˜ λ©”μ„Έμ§€μ˜ ν‘œν˜„μ€ λ‹€μ†Œ μ΄μƒν•œ 뢀뢄이 μžˆμŠ΅λ‹ˆλ‹€. "곡식 맀개 λ³€μˆ˜"λŠ” "ν•¨μˆ˜ 인수"λ₯Ό λ§ν•˜λŠ” 쒋은 λ°©λ²•μž…λ‹ˆλ‹€. μš°λ¦¬λŠ” "잘λͺ»λœ ν˜•μ‹μ˜ 단어λ₯Ό μ‚¬μš©ν–ˆλ‹€"라고 ν‘œν˜„ ν•©λ‹ˆλ‹€.

Examples

Invalid cases

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

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