Edit in JSFiddle

(function(){
    var User = function(name){
        this.name = name;
    };
    
    // コールバックの保存先
    User.records = [];

    // イベントとコールバックの登録
    User.bind = function(ev, callback){
        var calls = this._callbacks || (this._callbacks = {});
        (this._callbacks[ev] || (this._callbacks[ev] = [])).push(callback);
    };

    // イベントを発行
    User.trigger = function(ev){
        var list, calls, i, l;
        if(!(calls = this._callbacks)) return this;
        if(!(list = this._callbacks[ev])) return this;
        jQuery.each(list, function(){ this() });
    };

    // 新規にインスタンスを作成
    User.create = function(name){
 
        // インスタンスを配列に保存
        this.records.push(new this(name));
        
        // changeイベントを発行
        this.trigger('change');
    };
    
    jQuery(function($){
        User.bind('change', function(){
            
            // テンプレートを作成
            var template = $('#userTmpl').tmpl(User.records);
            
            // ビューの初期化
            $('#users').empty();
            
            // レンダリング
            $('#users').append(template);
        });
    });
    
    User.create('First one');
    
    setTimeout(function(){
        User.create('Another one');
    });
}());
<script type="text/x-jquery-tmpl" id="userTmpl">
<li>${name}</li>
</script>

<ul id="users"></ul>

              

External resources loaded into this fiddle: