2011-03-19 3 views
1

CommonJS 표준을 따르는 Backdraft loader를 사용하고 있습니다. 나는 모든 것이 어떻게 작동하는지 이해하려고 노력하고 있지만 지금은 조언이 필요합니다.CommonJS & functions

의 내가 타임 스탬프를 얻고 싶은 말을하자 나는이 수행

define(function(){ 
    return (new Date()).getTime() 
}); 

그럼 난 간단한이 필요하고 그것을 실행하려고합니까 : 지금은 무엇을 얻을 동일

require(['timestamp'],function(timestamp) { 
    console.log(timestamp()) 
    console.log(timestamp()) 
    console.log(timestamp()) 
} 

을 타임 스탬프는 타임 스탬프 기능이 평가 된 시점에서 3 번입니다. define()은 자동으로 닫히지 않습니까?

그래서 좀 내 노력 :

답변

1

그것은 Functionnal 프로그램에 대해 아니에요을 방해한다 재사용 할 수있는이 작은 기능을 수행하는 방법을 이해하지 함수형 프로그래밍을 배우는 중이에요. 그것은 CJS 모듈 정의에 관한 것입니다.

위의 예제에서 "timestamp"모듈을 요구 한 후 Backdraft loader는 (Backdraft를 모르기 때문에 RequireJS와 동일하게 작동한다고 가정) 새로운 타임 스탬프를 작성하고 캐시합니다. 그래서 당신이 그 기능을 부를 때마다. 같은 값을 반환합니다.