Что делать с повторяющейся условной конструкцией.
Всем доброй ночи. У меня родился код. Нужен совет, что с ним делать.
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, время: 20:53. |