BLOG main image
LEEEJONG (165)
IT (53)
주관적평가 (31)
창작공간 (80)
109,976 Visitors up to today!
Today 10 hit, Yesterday 57 hit
daisy rss
tistory 티스토리 가입하기!
'define'에 해당되는 글 1건
2015.12.08 10:52

ADM4는 기본 아키텍쳐가 클로져 스타일이다.


그와 필연적으로 엮어있는게 RequireJS인데


지금까지 별생각없이 쓰다가 생각해볼 일이 생겨서 정리해본다.


RequireJS에서 모듈을 Define하는 방법은 세가지가 있다.


출처 : http://requirejs.org/docs/api.html#define


세가지인줄 알고 다시 저페이지에 들어가봤는데 방법이 무지하게 많다.


일단 내가 사용하는 RequireJS Define 방식은 아래와 같다.

 define(['beans/Bless/BlessDesc','beans/Bless/BlessGameData'], function(Desc, GameData){



위 JS들을 로드하고, 그것들을 Function에 인자에 담아서 사용한다.

근데 GameData JS에는 모듈 로드하는게 내용이 좀 다르다


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'];

var requireModules = ['beans/Bless/BlessDesc'];

define( requireModules.concat( GameDataCategory.map(function(cat){ return 'beans/Bless/BlessGameData/BlessGameData.'+cat; }) ), function( Desc ){


앞에다 내가 로드할 모듈을 넣고, 원래있던걸 뒤에 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
RequireJS  (0) 2015.12.08
JQuery Plugin - Context Div  (0) 2014.05.29
Closure가 무엇인가  (0) 2014.05.29
AJAX  (0) 2014.03.17
Name
Password
Homepage
Secret
prev"" #1 next

티스토리 툴바