2016-08-06 3 views
-1
function cbTest(name,function(){ 
    console.log("Hello ",name); 
}) 


cbTest("john"); 

다음 오류가 나타납니다.익명 함수가 매개 변수로 사용됩니다.

(function (exports, require, module, __filename, __dirname) { 
    function cbTest(name,function(){ 
          ^^^^^^^^ 

SyntaxError: Unexpected token function
  at exports.runInThisContext (vm.js:53:16)
  at Module._compile (module.js:413:25)
  at Object.Module._extensions..js (module.js:452:10)
  at Module.load (module.js:355:32)
  at Function.Module._load (module.js:310:12)
  at Function.Module.runMain (module.js:475:10)
  at startup (node.js:117:18)
  at node.js:951:3

이 코드의 잘못된 점은 무엇입니까?

업데이트 : 익명의 함수를 매개 변수로 사용하려고했지만 어쨌든 다음과 같은 방법이 필요합니다.

function getName(name){ 
    return name; 
} 

function cbTest(name,cb){ 
    console.log("hello ",cb(name)); 
} 

cbTest("John",getName); 
+4

어떤이 코드를해야 당신 의견으로합니까? 함수를 선언하고 매개 변수 목록 대신 일부 함수를 입력하십시오. – Adassko

+0

함수는 * parameters * 일 수 없지만 * arguments * 일 수 있습니다. –

답변

4

당신은 함수를 선언 할 때, 매개 변수 목록은 매개 변수 (물론, 플러스 ES2015의 확산 운영자 ...)의 이름으로 구성 될 수 있습니다. 매개 변수 목록에 인스턴스화 함수가있는 함수를 선언하려고합니다. 단지 이해가되지 않습니다.

익명 함수는 함수 호출있을 때 매개 변수 목록에서 의미가 있지만, 당신이있을 때 에게 그것을 선언하지.

0

이 코드는 어떤 의미가 없습니다

이 될 수 있습니다 :

function cbTest(name) { 
    console.log("Hello ",name); 
} 

cbTest("john"); 

또는

function cbTest(name, func) { 
    func(name); 
} 


cbTest("john", function(name){ 
    console.log("Hello ",name); 
}); 
당신은 함수 선언에 아무것도 통과 할 수

+0

두 번째 예제는'func (name)'대신'func ('foo')'가되어야합니다. – gcampbell

+0

두 번째 예제가 작동합니다! "Hello John"을 인쇄합니다. @gcampbell도 작동합니다. "Hello foo"를 출력합니다. 감사합니다. – naga

관련 문제