我使用的是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
答案 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;
}
}
}
});
不知道他们中的任何一个是否像你想象的那样。但实质上,你必须返回一些东西来连接某些东西。否则,该方法将返回未定义,并且您无法在未定义上调用方法。