예를 들어 common.ui 라는 이름의 패키지를 정의하고 싶다면,
var common = window.common = window.common || { }; common.ui = {};
개인적으로는 다음과 같이 JQuery.extend 함수를 사용하는 것을 더 선호한다.
$.extend(common, {ui:common.ui||{}});
그럼 더 나아가서 다음과 같은 패키지 구조를 생각한다.
먼저 common.ui.core.js , common.ui.data.js 스크립트 파일을 생성한다.
common.ui.core.js
;(function($, undefined) { var common = window.common = window.common || { }, extend = $.extend; extend(common, { ui: common.ui || {} }); })(jQuery);common.ui.data.js
;(function($, undefined) { var ui = common.ui, extend = $.extend; extend(ui, { data: common.ui.data || {} }); })(jQuery);
이제 common.ui 패키지에 kendo 프레임워크의 DataSource 객체를 미리 정의된 프로퍼티 값으로 생성하는 datasource 라는 함수를 추가하여 보자. 기존의 common.ui.core.js 파일에 추가하여도 되고 별도의 파일을 생성하여도 무관한다.
;(function($, undefined) { var ui = common.ui, extend = $.extend; function handleAjaxError(xhr) { // do something } var DEFAULT_DATASOURCE_SETTING = { transport:{ read:{ type :POST, dataType : JSON } }, serverPaging: true, error:handleAjaxError, pageSize: 10 }; function datasource(url, options){ options = options || {}; var settings = extend(true, {}, DEFAULT_DATASOURCE_SETTING , options ); if( defined(url) ){ settings.transport.read.url = url; } var dataSource = DataSource.create(settings); return dataSource; }; extend (ui, { datasource : common.ui.datasource || datasource }); })(jQuery);이제 HTML 에서 자바스크립트 파일을 선언하고 common.ui.datasource() 함수를 호출할 수 있다.
댓글 없음:
댓글 쓰기