在javascript中添加方法到方法

时间:2014-05-02 06:23:54

标签: javascript function backbone.js methods syntax

我使用的是Backbone,但我觉得这更像是一般的javascript语法问题 如何在方法(或函数内的函数)中添加方法并通过链接它们来调用它们?

var myModel = Backbone.Model.extend({

    method1: function(x){
        method2: function(y){
            return x*y;
        }
    }

    // or perhaps
    method1: function(x){
        {
            method2: function(y){
                x = x*y;
            }
        }
        return x;
    }
});

var mymodel = new myModel();
mymodel.method1(3).method2(5); // outputs 15

1 个答案:

答案 0 :(得分:1)

通常通过返回原始对象来实现链接。

var myModel = Backbone.Model.extend({
    methodSub: function(x){
        this.x -= x;
        return this;
    },
    methodAdd: function(y){
        this.y += y;
        return this;
    }
});

或者像这样:(但它本质上是另一个对象,应该适当定义)

var myModel = Backbone.Model.extend({
    methodSub: function(x){
        this.x -= x;
        return {
             x : this.x,
/*           val : this.x, Or simply val, if that seems appropriate */
             methodAdd: function(y){
                this.x += y;
                return this;
             }
        }
    }
});

不知道他们中的任何一个是否像你想象的那样。但实质上,你必须返回一些东西来连接某些东西。否则,该方法将返回未定义,并且您无法在未定义上调用方法。