2014-04-01 2 views
0

jQuery, socket.io, peerjs 및 이벤트 처리를위한 몇 가지 다른 라이브러리/프레임 워크에 존재하는 .on('eventName', function(){...}); 패턴을 알고 있습니까?이 패턴의 이름은 무엇입니까? .on ('eventName', function() {...});

내가 할 수있는 일, 실제로 할 수있는 일, 구조 등을 더 잘 이해하고 싶지만 Google 검색에서 많은 것을 얻을 수는 없다. 패턴에 이름? 어떤 사람이이 패턴을 생각해 냈습니까?

지금까지 수집 할 수있는 내용은 addEventListener과 비슷하게 보이는 데 차이점이 있습니까?

EDIT : 조금 정리하면, 노드 JS 애플리케이션 중 하나에 이벤트 처리 유형을 구현하려고하며 아래처럼 잡히게 될 이벤트를 트리거 할 수 있기를 원합니다. 우수 사례 검색에 대한 검색 - 좋은 검색어 등을 파악할 수 없습니다.

var myNewObject = new MyLibrary(); 

myNewObject.on('event_1', function(param1, param2){ 

... 

}); 

고마워요!

notJQuery = function() { 
    if (typeof(notJQuery.eventList) === 'undefined') { 
     notJQuery.eventList = {}; 
    } 

    this.on = function(events, callback) { 
     events = events.split(' '); 
     for (i in events) { 
      eventName = events[i]; 
      notJQuery.eventList[eventName][] = callback; 
     } 
    }; 

    return this; 
}; 

당신은 eventName => callback 협회의 모든를 개최하는 이벤트 목록이 필요합니다 : 당신이 자신의 롤 경우

+1

https://api.jquery.com/on/ – Satpal

+0

봐 그것은 두 인수 함수라고? – adeneo

+0

이벤트 콜백 패턴 - [여기] (http://stackoverflow.com/questions/8951276/callback-command-vs-eventlistener-observer-pattern)에서 볼 수 있습니다. 이벤트를 처리하는 것이 꽤 표준화되어있는 동안 "콜백"으로 간주되는 매개 변수로 함수를 전달할 때마다 정의의 단순성에 초점을 맞추기 만합니다. –

답변

1

이 그것을 할 수있는 하나의 방법이다.

"인공"이벤트 (사용자가 디자인 한 이벤트)를 트리거 할 때마다 이벤트 목록을 조회하고 해당 이벤트에 대한 모든 콜백을 찾습니다.

실제 이벤트 (사용자가 설계하지 않은 이벤트 핸들러)를 업데이트 할 때마다 이벤트 목록을 조회하고 해당 이벤트에 대한 해당 콜백을 시스템 제공 이벤트 핸들러/수신기에 첨부합니다.

1

실제로 패턴이 아니며 실제로는 두 개의 인수가있는 함수입니다.

일반적으로 주 개체를 사용하는 것으로 시작하고, jQuery는 $를 사용하고 해당 개체의 새 인스턴스를 반환합니다.

그런 다음 on()과 같은 속성을 다른 함수와 마찬가지로 인수를 허용하는 함수와 연결합니다.

매우 단순화는이

var $ = function(selector) { 
    if (!(this instanceof $)){ 
     var instance = new $; 
     instance.elem = document.querySelector(selector); 
     return instance; 
    }else{ 
     return this; 
    } 
} 

$.prototype.on = function(event, callback) { 
    this.elem.addEventListener(event, callback, false); 
} 

$('#test').on('click', function() { 
    alert('This is how it works') 
}); 

FIDDLE

처럼 보이는 그리고 2 분에 불과 jQuery를 보이는 뭔가를 만들었습니다. 물론 그것은 수천 줄의 코드가 누락되어 다소 제한적이지만이 기능이 실제로는 특별한 패턴을 갖고 있지 않은 객체와 함수라는 것을 보여줍니다.

1

관찰 가능한 패턴이라고하며 자바 스크립트 객체 또는 플러그인의 이벤트 및/또는 메소드를 구독하는 데 사용됩니다.

그들은 callbacks과 비슷하지만 가입자 패턴을 사용하여 개별적으로 가입/탈퇴 할 수 있으며 하나의 콜백 기능 내에 모든 로직을 넣을 필요가 없습니다. Emitter plugin