2013-10-13 6 views
2

내가 Node.js를 콘솔에서이 같은 입력 :식 평가 ("기능 (X) {반환 X * X}") 휴식 Node.js를 콘솔

var f = eval("function(x) { return x*x}"); 

그것은 표현식을 평가하지 않습니다 내가 다른 것을 타이핑 할 때까지 기다린다.

enter image description here

왜 이런 일이 무엇입니까? 왜이 식 뒤에 다른 식을 입력 할 수 없습니까?

답변

2
function(x) { return x*x} 

은 오류입니다 (콘솔에서 확인하십시오). 노드의 REPL이 더 기다립니다.

함수를 빌드하고 지정하려면 값을 반환하는 명령문 인 eval을 사용해야합니다. 일반적인 해결책은 함수 표현식을 괄호로 닫는 것입니다.

당신은 쓸 수 있습니다

var f = eval("(function(x) { return x*x})"); 

또는

var f = Function("x", "return x*x"); 

물론

var f = function(x) { return x*x}; 

하지만 난 당신이 하나를 알고 가정합니다.