Что делать с повторяющейся условной конструкцией.
Всем доброй ночи. У меня родился код. Нужен совет, что с ним делать.
elem.addEventListener('keyup', function(e){ if(e.keyCode === 13) { if(e.target.value.length === 1) { fn1(); } else { fn2(); } } else { if(e.target.value.length === 1) { fn3(); } else { fn4(); } } }, false); Условие - if(e.target.value.length === 1) {…} else {…}, неоднократно повторяется. Хотел бы знать, как программисты js в таких случаях кодируют. |
пример
elem.addEventListener('keyup', function(e){ var val = e.target.value.length == 1; e.keyCode == 13 ? val ? fn1(): fn2(): val ? fn3(): fn4(); }, false); |
спб за отклик. дело в том, что функция будет расширяться и в этом коде я запутаюьс.
у меня есть свой пример, и я хотел узнать есть ли решение лучше этого - var keyup = (function(){ var TmpMethod = function(fnTrue, fnFalse) { this.fnTrue = fnTrue || function(){}; this.fnFalse = fnFalse || function(){}; }; TmpMethod.prototype.invoke = function(val){ if(val) { this.fnTrue(); } else { this.fnFalse(); } }; var strategy = {}; strategy['13'] = new TmpMethod(function(){ alert('true') }, function() { alert('false') }); strategy['default'] = new TmpMethod(); return function(e) { var key = (e.keyCode in strategy) ? e.keyCode : 'default'; strategy[key].invoke(e.target.value.length); }; }()); |
Часовой пояс GMT +3, время: 07:49. |