У меня есть простой сценарий, в котором я проверяю, существует ли что-то, прежде чем добавлять его, если это так, I return
функция (следовательно, выход). Я использую этот шаблон много раз, и я хотел бы отделить его от другой простой функции.Javascript return enclosing function
function onEvent(e){
if(this.has(e))
return
this.add(e);
// More logic different on an event-basis
}
Я хотел бы отвязать его следующим образом:
function safeAdd(e){
if(this.has(e))
return
this.add(e);
}
function onEvent(e){
safeAdd(e);
// More logic
}
Но очевидно, что сделать это просто return
s safeAdd
и не выход из onEvent
, а остальная часть логики запускается на выполнение в любом случае.
Я знаю, что я мог бы сделать что-то вроде:
function safeAdd(e){
if(this.has(e))
return false
this.add(e);
return true
}
function onEvent(e){
if(!safeAdd(e))
return
// More logic
}
Но, так как я повторяю это много, я хотел бы быть как можно более кратким.
Это столь же кратким, как он получает (кроме того, для некоторого пустячный внутри 'функции safeAdd'). –
Можно перейти в «более логичную» с помощью функции «указатель» (не уверен, что javascript называет это), а затем имеет функцию safeAdd(), которая добавляет дополнительную функцию, когда запись добавляется в список. Однако я сомневаюсь, что это будет более кратким. – ash