Ребята помогите правильно реализовать цепочки функций как в jquery
Всем привет
Помогите пожалуйста реализовать цепочки функций как в jquery $().$().$().$().$()............. грамотно как лучше делать через прототипы или без них? напишите пожалуйста примерчики цепочек какие у вас есть :help: |
Вариант без повтора "return this"
function $(a) { this[a] = a; }
// методы хранятся тут
var props = {
"foo": function(){ alert("foo"); },
// что-то возвращает
"bar": function(){ alert("bar"); return ":)"; },
"etc": function(a){ alert("etc"); return this[a]; }
};
// магическая оборачивалка
var i, wrap = function(prop) {
return function(){
var res = props[prop].apply(this, arguments);
return res === undefined ? this:res;
};
};
// обрабатываем свойства магической оборачивалкой
for(i in props) if(props.hasOwnProperty(i)) {
$.prototype[i] = wrap(i);
}
// и используем.
alert( new $().foo().bar() );
alert( new $("HEYA!").etc("HEYA!") );
|
|
Octane, Вы удалили 2 поста выше? okay :(
Цитата:
но есть минус - придётся как-то распознавать процедуру от функции. я подумал, что это монжно сделать, не возвращая из процедуры ничего. (т.е. undefined). но тут может возникнуть проблема с функциями, которые намеренно возвращают undefined. так что я не знаю, можно ли мой код считать классным (: пусть посуществует на правах "ещё одного способа" |
Цитата:
|
многострочный текст нельзя писать
|
в кавычках в яваскрипте
|
| Часовой пояс GMT +3, время: 19:20. |