ADM4는 기본 아키텍쳐가 클로져 스타일이다.
그와 필연적으로 엮어있는게 RequireJS인데
지금까지 별생각없이 쓰다가 생각해볼 일이 생겨서 정리해본다.
RequireJS에서 모듈을 Define하는 방법은 세가지가 있다.
출처 : http://requirejs.org/docs/api.html#define
세가지인줄 알고 다시 저페이지에 들어가봤는데 방법이 무지하게 많다.
일단 내가 사용하는 RequireJS Define 방식은 아래와 같다.
define(['beans/Bless/BlessDesc','beans/Bless/BlessGameData'], function(Desc, GameData){
var GameDataCategory = ['hi','jl',hello','world'];
define( GameDataCategory.map(function(cat){ return 'beans/Bless/BlessGameData/BlessGameData.'+cat; } ), function( Desc ){
//blahblah
})
요래요래 되어있다.
저 내용을 질의하니
GameDataCategory Array에 있는 값들을 전부 로드하는것이라고 한다.
따라서 내가 필요한 description을 추가로 로드하기 위해 아래와 같이 수정했다.
var GameDataCategory = ['hi','jl',hello','world'];
앞에다 내가 로드할 모듈을 넣고, 원래있던걸 뒤에 concat으로 붙였다.
내가 쓸 모듈은 Desc에 담았고, 나머지는 뭐 안담고 그냥 쓴다
참고로 내가 명시적으로 담지 않은 Require된 모듈들은
arguments[ i ] 에 담긴다고 한다.
> for( var i=requireModules.length; i<arguments.length; i++)
arguments[i](DataKey, GameData);
이런식으로 불러서 쓸 수 있다.
명시적이지 않게 많은 경우 사용할 수 있는 방법으로 보인다.
이상
'IT > WebB' 카테고리의 다른 글
JS Object / Array add Item (0) | 2015.12.10 |
---|---|
MSSQL 바이너리 -> 가져와서 파싱하기 (0) | 2015.12.08 |
JQuery Plugin - Context Div (0) | 2014.05.29 |
Closure가 무엇인가 (0) | 2014.05.29 |
AJAX (0) | 2014.03.17 |