본문 바로가기
프론트기술/JavaScript

Javascript 옵저버 패턴

by RevFactory 2014. 11. 18.

var Users = {

    list: [],

    listeners: {},

    add: function(name) {

        this.list.push({name: name});

        this.dispatch("user-added");

    },

    on: function(eventName, listener) {

        if(!this.listeners[eventName]) this.listeners[eventName] = [];

        this.listeners[eventName].push(listener);

    },

    dispatch: function(eventName) {

        if(this.listeners[eventName]) {

            for(var i=0; i<this.listeners[eventName].length; i++) {

                this.listeners[eventName][i](this);

            }

        }

    },

    numOfAddedUsers: function() {

        return this.list.length;

    }

}


Users.on("user-added", function() {

    alert(Users.numOfAddedUsers());

});


Users.add("Krasimir");

Users.add("Tsonev");

'프론트기술 > JavaScript' 카테고리의 다른 글

45 useful javascript tips  (0) 2015.03.30
javascript 이미지 크기 불러오기  (0) 2014.11.18
Json - Object 간 변환  (0) 2013.05.28