19 ноября 2009-го
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
19 ноября 2009, 9:14
Hard Javascript: Chain Fucntions (jQuery style) -> Функции цепочками
Давно хотел разобраться с функциями через точечку, то есть с теми, что по цепочке, как в любимом jQuery. В самом коде jQuery можно сломать голову, потому искал просветления в инете, и довольно безрезультатно, пока не наткнулся на маленькую либу $fx для анимации, и на меня сошло озарение.
Всё довольно просто и через замыкание функции в конце:
Всё довольно просто и через замыкание функции в конце:
$ = function(v) { if (v.nodeType && v.nodeType == 1) var f = v; else if (typeof v == "number") { var f = {"result":v}; } else return null; f.plus = function (nmbr) { nmbr = nmbr || this.result; this.result += nmbr; return this; }; f.minus = function (nmbr) { nmbr = nmbr || this.result; this.result -= nmbr; return this; }; f.multiply = function (nmbr) { nmbr = nmbr || this.result; this.result *= nmbr; return this; }; f.divide = function (nmbr) { nmbr = nmbr || this.result; this.result /= nmbr; return this; }; return f; }Вкратце, проверяем первый аргумент:
- если функция (объект, без разницы в JS), присваиваем к главной функции с под
лепрамифункциями(нодами) - если число, то создаём объект с параметром result
- дальше следует замыкание через «return f»;
$(10).plus(5).minus(7).divide(2).multiply(3).result
1 комментарий| 16 ноября 2009-го . . . | ← | Ctrl | → | 20 ноября 2009-го |
