我试图让我直接在脑海中做jQuery风格的函数链接的原则。我的意思是:基本对象/函数链接如何在JavaScript中工作?
var e = f1('test').f2().f3();
我已经得到了一个例子工作,而另一个没有。我会在后面发表。我总是想学习如何工作的第一个原则基础,以便我可以在此基础上进行构建。到目前为止,我只是粗略和宽松地理解链接是如何工作的,而且我遇到了无法智能排除故障的错误。
我所知道的:
- 函数必须返回自己,又名 “返回此;”可连接函数必须驻留在父函数中,也称为jQuery,.css()是jQuery()的子方法,因此jQuery().css();
- 父函数应该返回自身或自身的新实例。
这个例子的工作:
var one = function(num){
this.oldnum = num;
this.add = function(){
this.oldnum++;
return this;
}
if(this instanceof one){
return this.one;
}else{
return new one(num);
}
}
var test = one(1).add().add();
但是这一次没有:
var gmap = function(){
this.add = function(){
alert('add');
return this;
}
if(this instanceof gmap) {
return this.gmap;
} else{
return new gmap();
}
}
var test = gmap.add();
函数不返回它们自己,它们返回支持您链接的方法的对象。在jQuery的情况下,它是正在运行的节点。 – drudru 2009-07-08 18:00:52
让每个函数以`return this;`结尾。 – 2012-06-10 01:30:46
@MarcB - 我知道,但是怎么样? – 2012-06-10 01:31:32