1. JavaScript / Говнокод #16706

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    ...
    $ (object.position).animate (data.point, { duration: data.instant ? 1 : 7 * distance,
        progress: data.instant ? function () {} : function (lol, progress) {
            object.position.y = data.point.y + Math.abs (Math.sin (progress * distance * 0.3));
        },
        always: data.instant ? function () {} : function () {
            object.position.y = data.point.y;
            ...

    как труъ, сделать if (data.instant) { ... } или и так покатит?

    Запостил: makc3d, 16 Сентября 2014

    Комментарии (4) RSS

    • Можно ещё завести var emptyFn = function() {} (к примеру, в ExtJS есть Ext.emptyFn), чтобы в глазах не рябило.
      Но раз уж тут как минимум три однотипные проверки, то лучше наверное заиметь var animationConfig и сформировать его отдельно. Опять же, нет гарантий, что в бадащем добавится ещё один элемент конфига, и опять там надо проверять.
      Ответить
      • Зачем нужна emptyFn? String и Number тоже вполне покатят. А если результат все равно не нужен, то можно и Function, Object, isNaN или encodeURIComponent если интырпрайзности не хватает.
        Ответить
    • var options = {
      duration : 1,
      progress: function{},
      always: function{}
      }
      
      if(data.instant){
      options.duration = 7;
      options.progress = function (lol, progress) { ...
      }
      
      $(object.position).animate(data.point, options);
      Ответить
      • кстати в таком варианте пустые функции можно не писать вообще
        Ответить

    Добавить комментарий