js 디자인 모델에서 게시 및 구독 실현 관찰자 모델 예
                                            
 1510 단어  관찰자 모드
                    
<script>
    var pubsub = {};
    (function(q) {
        var topics = {};
            subuid = -1;
        q.publish = function(topic, args) {
            if(!topics[topic]) {
                return false;
            }
            var subs = topics[topic],
                len = subs.length;
            while(len--) {
                subs[len].func(topic, args);
            }
            return this;
        }
        q.sub = function(topic, func) {
            if(!topics[topic]) {
                topics[topic] = [];
            }
            var token = ++subuid;
            topics[topic].push({
                token: token.toString(),
                func: func
            })
            return token;
        }
        q.ubsub = function(token) {
            for(var m in topics) {
                if(topics[m]){
                    for(var i=0, j=topics[m].length; i<j;i++) {
                        if(topics[m][i].token == token) {
                            topics[m].splice( i, 1 );
                            return token;
                        }
                    }
                }
            }
            return this;
        }
    })(pubsub);
</script>
<script id="test_data">
    var topic = 'test/index';
    pubsub.sub(topic, function() {alert(arguments[1])})
    pubsub.publish(topic, 2)
    pubsub.ubsub(0);
    pubsub.publish(topic, 2)
</script>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 관찰자 모드 쉽게 파악정의: 객체 간에 일대다 관계가 있을 때 관찰자 모드(Observer Pattern)를 사용합니다.예를 들어 대상이 수정되면 의존 대상을 자동으로 알려준다. 특징: 1. 관찰자와 피관찰자는 추상적인 결합이다. 2. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.