>  기사  >  웹 프론트엔드  >  JavaScript 관찰자 패턴 정의 및 DOM 이벤트 인스턴스에 대한 자세한 설명

JavaScript 관찰자 패턴 정의 및 DOM 이벤트 인스턴스에 대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-07-24 14:33:031567검색

관찰자 패턴(게시-구독 패턴): 객체 간의 일대다 종속 관계를 정의합니다. 객체의 상태가 변경되면 이에 의존하는 모든 객체에 알림이 전송됩니다.

JavaScript에서는 일반적으로 이벤트 모델이 기존 관찰자 패턴을 대체하는 데 사용됩니다.
이점:

(1)은 비동기 프로그래밍에서 널리 사용될 수 있으며 콜백 함수 전달의 대안입니다.

(2)는 객체 간에 하드 코딩된 알림 메커니즘을 대체할 수 있습니다. 한 객체는 더 이상 다른 객체의 인터페이스를 명시적으로 호출할 필요가 없습니다. 두 개체는 쉽게 분리됩니다.

DOM 이벤트 – 관찰자 패턴의 전형적인 예

document.body에 대한 사용자의 클릭을 모니터링해야 하지만 사용자가 언제 클릭할지 예측할 방법이 없습니다.
그래서 document.body에서 click 이벤트를 구독합니다. body 노드가 클릭되면 body 노드가 구독자에게 이 메시지를 게시합니다!


document.body.addEventListener("click", function() {
  console.log(1);
}, false);

// 可以多个订阅者
document.body.addEventListener("click", function() {
  console.log(2);
}, false);

doucment.body.click();

특정 웹사이트에는 헤더, 탐색 탐색, 메시지 목록 및 기타 모듈이 있습니다. 이러한 모듈을 렌더링하려면 사용자 로그인 정보를 얻어야 합니다.
(1) 일반적인 작성 방법:


$.ajax({
  url: './login',
  type: 'post',
  contentType: 'application/json',
  dataType:'json',
  success: function(data) {
    if(data.status === "success") {
      // 登录成功,渲染header、nav
      header.setInfo(data.headerInfo);
      nav.setInfo(data.navInfo);
    }
  }
});

(2) 관찰자 패턴을 사용하면 분리가 쉽습니다!


rreee

위 내용은 JavaScript 관찰자 패턴 정의 및 DOM 이벤트 인스턴스에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.