Я пытаюсь понять принципы создания цепочки функций в стиле jQuery прямо у себя в голове. Под этим я подразумеваю:
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();
return this;
. - person Marc B   schedule 10.06.2012