码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript Observer Pattern

时间:2016-04-28 00:35:15      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

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(obj) {
    alert(Users.numOfAddedUsers());
    console.log("obj:",obj);
});

Users.add("Krasimir");
Users.add("Tsonev");

 

Referring to http://jsfiddle.net/krasimir/sHNKD/3/

JavaScript Observer Pattern

标签:

原文地址:http://www.cnblogs.com/wsion/p/5440887.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!