2017-10-09 20 views
0

나는 예를 들어, 기본 매개 변수를 광범위하게 사용 자바 스크립트 프로젝트를 작성했습니다. Rhino, Nashorn 및 Node를 사용해 보았지만 기본 매개 변수가 발생하면 오류가 발생합니다. 코뿔소에서 오류 : 내가 기본 인자를 제거하기 위해 내 모든 코드를 다시 작성하지 않고 명령 줄에서 내 프로젝트를 호출 할 수있는 몇 가지 방법은Rhino에서 스크립트를 호출 할 때 javascript 함수에 선택적 매개 변수가있는 방법이 있습니까?</p> <pre><code>function hello(x = true){ ... } </code></pre> <p>가 지금은 명령 줄에서 내 코드를 호출 할 :

js: "resource.js", line 6: missing) after formal parameters 
js: function hello(x = true){ 
js: ..................^ 
js: "resource.js", line 1: Compilation produced 1 syntax errors. 

있습니까?

감사

편집

: 버전 4에서 버전 8로 Node.js를 업데이트 한 후이 작동합니다. node.js를 사용 하겠지만 rhino에서는 가능한지 아직 알 수 없습니다.

+0

어떤 버전을 사용하셨습니까? 특히 노드는 오랜 시간 이후 기본값을 처리하는 방법을 알고 있습니다. – Bergi

+0

저는 rhino 1.7을 사용하고 있습니다. 우분투에는 노드의 이전 버전 인 v4.2.6이 설치되어 있습니다. 따라서 노드를 업데이트하는 것이 트릭입니다. 감사합니다! 글로벌 변수가 많고 노드에서 다시 실행해야하므로 rhino를 사용하는 것이 좋습니다. –

답변

1

항상 기본 인수의 동작을 복사 할 수 있지만 최신 버전의 javascript에서는 읽을 수 없습니다.

당신은 단지 하나 개의 인수이 함수 내부 undefined 확인 될 경우 그 을 수행하는 간단한 방법, : 한편

js> function hello(x){ 
    > if (x === undefined) x = 5; 
    > return x; 
    > } 
js> hello() 
5 
js> hello(42) 
42 

은 기능 이상의 인수가 포함되어있는 경우 위와 같이 개체를 입력으로 사용하고 undefined 값을 확인하는 것이 좋습니다.

js> function hello(args){        
    > if (args.x === undefined) args.x = 5;  
    > return args.x + "-" + args.y; 
    > } 
js> hello({y: 12}) 
5-12 
js> hello({x: 1, y: 42}) 
1-42