-1

在我编写的 dateTime 类下面,一个例子比解释更容易:

    define([
        'jquery',
        'infrastructure/libWrapper/Backbone',
        'underscore' ],
        function($, Backbone, _ ){

            return Backbone.Model.extend({
                initialize: function(){
                    if(this.get('value') == null){
                        this.set('value', new Date());
                    }
                    else{
                        var parts = this.get('value').match(/\d+/g);
                        this.set('value', new Date(parts[0], parts[1] - 1 , parts[2], parts[3], parts[4], parts[5]));
                    }
                },
                minus : function(dateTime){
                    return this.get('value').getTime() - dateTime.get('value').getTime();
                },
                toISOString : function(){
                    return this.get('value').toISOString();
                },

                defaults:{
                    value: null}
            });
        });

如果我想实现应该返回 dateTime 的方法:“function plus(duration) {}”,我该怎么做?

4

1 回答 1

1

在返回模型之前保存模型,或者更好地添加它与您相同的方式minus

    define([
    'jquery',
    'infrastructure/libWrapper/Backbone',
    'underscore' ],
    function($, Backbone, _ ){

        var model = Backbone.Model.extend({
            initialize: function(){
                if(this.get('value') == null){
                    this.set('value', new Date());
                }
                else{
                    var parts = this.get('value').match(/\d+/g);
                    this.set('value', new Date(parts[0], parts[1] - 1 , parts[2], parts[3], parts[4], parts[5]));
                }
            },
            minus : function(dateTime){
                return this.get('value').getTime() - dateTime.get('value').getTime();
            },
            // here
            plus : function(dateTime){
                return this.get('value').getTime() + dateTime.get('value').getTime();
            },
            toISOString : function(){
                return this.get('value').toISOString();
            },

            defaults:{
                value: null}
        });
        //or here
        model.plus = function(duration) {   } 

        return model
    });
于 2012-10-22T18:18:05.937 回答