Ребята помогите правильно реализовать цепочки функций как в 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, время: 22:08. |