2016-10-16 2 views
0

Javascript에서는 아직 이해할 수없는 개념이 있습니다. 예를 들면 이것처럼. 두 개의 정수 중 가장 큰 공약수를 반환하는 함수를 검색하는 동안이 코드를 발견했습니다. 나는 그것을 테스트했지만 이것이 어떻게 gcd를 반환하는지 이해할 수 없다. return gcd(b, a % b);의 역할은 무엇입니까?함수 내부에서 함수 이름을 호출하는 중

var gcd = function(a, b) { 
    if (! b) { 
     return a; 
    } 
    return gcd(b, a % b); 
}; 
+0

https://en.wikipedia.org/wiki/Euclidean_algorithm – Jon

답변

0

만약 종료 조건이 발견하고 순환이 정지 될 때까지 다른 paramters 다시 동일한 기능을 호출하는 패턴 인 recusion를 사용하고있다.

// exit condition 
if (!b) { 
    return a; 
} 

이 경우에, 기능 등 이동 a 파라미터 ba 모듈 bb의 새로운 매개 변수로 다시 호출한다. * * "명명 된 기능이 아닌 익명 함수를 사용하여"무엇

// call function again with different parameters 
return gcd(b, a % b); 
+1

이 요구되는 질문을 할 필요가? –

+1

감사! 매우 명확한 –

관련 문제