첫 번째 방법은 __onfireEvents에 직접 맞춤 이벤트를 저장하는 것입니다
<code>var __onfireEvents = {}; function _bind(eventName, callback, is_one, context) { if (typeof eventName !== string_str || typeof callback !== function_str) { throw new Error('args: '+string_str+', '+function_str+''); } if (! hasOwnKey(__onfireEvents, eventName)) { __onfireEvents[eventName] = {}; } __onfireEvents[eventName][++__cnt] = [callback, is_one, context]; return [eventName, __cnt]; } function on(eventName, callback, context) { return _bind(eventName, callback, 0, context); } </code>
두 번째 방법은 커스텀 이벤트를 저장하는 방법인데, 요소에 바인딩된다는 점이 다릅니다. 여기에 장점이 있나요?
<code>$customSubMap = {}; subscribeEvent = function ( $collection, event_name, fn ) { $collection.on( event_name, fn ); if ( ! $customSubMap[ event_name ] ) { $customSubMap[ event_name ] = $collection; } else { $customSubMap[ event_name ] = $customSubMap[ event_name ].add( $collection ); } };</code>
첫 번째 방법은 __onfireEvents에 직접 맞춤 이벤트를 저장하는 것입니다
<code>var __onfireEvents = {}; function _bind(eventName, callback, is_one, context) { if (typeof eventName !== string_str || typeof callback !== function_str) { throw new Error('args: '+string_str+', '+function_str+''); } if (! hasOwnKey(__onfireEvents, eventName)) { __onfireEvents[eventName] = {}; } __onfireEvents[eventName][++__cnt] = [callback, is_one, context]; return [eventName, __cnt]; } function on(eventName, callback, context) { return _bind(eventName, callback, 0, context); } </code>
두 번째 방법은 커스텀 이벤트를 저장하는 방법인데, 요소에 바인딩된다는 점이 다릅니다. 여기에 장점이 있나요?
<code>$customSubMap = {}; subscribeEvent = function ( $collection, event_name, fn ) { $collection.on( event_name, fn ); if ( ! $customSubMap[ event_name ] ) { $customSubMap[ event_name ] = $collection; } else { $customSubMap[ event_name ] = $customSubMap[ event_name ].add( $collection ); } };</code>
두 번째가 더 읽기 쉬운 것 같습니다.
사실 상품과 카테고리의 관계처럼 둘 사이에는 본질적인 차이가 없다고 생각합니다. {Product1:[Category1, Category2]} 또는 {Category1: [Product1, Product2]}라고 말할 수 있습니다.
개인적인 느낌은 2번째로 좋습니다