2017-02-06 16 views
-1

Я пытаюсь понять эту часть модуля:Можете ли вы отказаться от этого заявления?

(isOwner 
    ? canSort || (revert = !rootEl.contains(dragEl)) 
    : (
     putSortable === this || 
     activeGroup.checkPull(this, activeSortable, dragEl, evt) && group.checkPut(this, activeSortable, dragEl, evt) 
    ) 
) 

Может кто-то «не-стенограмму» это для меня?
Это часть оператора IF и возвращает true/false.

+1

Что немного не понимаешь? – Quentin

+0

Запись в этом стиле делает его неуверенным/не может понять логику => трудно поддерживать. –

+0

Ну да. Вот почему Delcon задает этот вопрос. – BoltClock

ответ

2

Он любит это выглядеть:

if (isOwner) { 
    if (canSort) { 
     return true; 
    } else { 
     return (revert = !rootEl.contains(dragEl)); 
    } 
} else { 
    if (putSortable === this) { 
    return true; 
    } else { 
    return activeGroup.checkPull(this, activeSortable, dragEl, evt) && group.checkPut(this, activeSortable, dragEl, evt); 
    } 
} 
0

на основе кода, похоже, что он устанавливает логическое значение. Если вы расширить его, это будет выглядеть примерно так:

var something; 
if (isOwner) { 
    if (canSort != undefined && canSort !== 0) { 
    something = true; 
    } 
    else { 
    something = (revert = !rootEl.contains(dragEl)); 
    } 
} 
else { 
    if (putSortable === this) { 
    something = true; 
    } 
    else { 
    something = (activeGroup.checkpull(this, activeSortable, dragEl, evt) && group.checkPut(this, activeSortable, dragEl, evt)); 
    } 
} 
1

Во-первых, убедитесь, что вы понимаете, как ternary operator работы в JavaScript.

Если "isOwner", правда, он возвращает это:

canSort || (revert = !rootEl.contains(dragEl)) 

в противном случае она будет возвращать это:

putSortable === this || 
activeGroup.checkPull(this, activeSortable, dragEl, evt) && group.checkPut(this, activeSortable, dragEl, evt)