내가 Javascript : The Good Parts라는 책을 읽는 동안.자바 스크립트 클로저 질문
: 우리는 지금 초기 메모 배열과 기본적인 기능을 제공하는 memoizer과 피보나치을 정의 할 수 있습니다우리는 우리가 memoized 기능을하는 데 도움이 기능을함으로써이 문제를 일반화 할 수 있습니다 나는 코드 울부 짖는 소리의 조각을 이해할 수 없습니다. memoizer 함수는 은 초기 메모 배열을 취하고 기본 함수를 취합니다. 메모 저장소를 관리하고 필요에 따라 기본 함수를 호출하는 셸 함수를 반환합니다.
var fibonacci = memoizer([0, 1], function (test, n) { return test(n - 1) + test(n - 2); });
var memoizer = function (memo, fundamental) {
var shell = function (n) {
var result = memo[n];
if (typeof result !== 'number') {
result = fundamental(shell, n);
memo[n] = result;
}
return result;
};
return shell;
};
: 우리는 기본 기능에 쉘 함수와 함수의 매개 변수 전달
제 질문은 테스트 기능입니다. 언제 정의되고 호출됩니까? 그것은 나에게 매우 혼란스러워 보입니다. 또한 나는이 진술 : memo[n] = result;
이 쓸모 없다고 생각한다. 내가 틀렸다면 수정하십시오.
우와. 함수 적 프로그래밍 지식이 거의없는 사람으로서,이 코드는 내 마음을 날려 버렸습니다. 너무 똑똑해! – dmb
관련 내용 : [자바 스크립트 - 좋은 부분 "예제 (4.15 절)에 대한 설명] (https://stackoverflow.com/questions/3798858/explanation-on-javascript-the-good-parts-example-section-4 -15) – Bergi