我有一个简单的场景,我在添加之前检查是否存在某些东西,如果存在,我return
就是函数(因此退出)。我多次使用这种模式,我想在另一个简单的函数中解耦它。
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
ssafeAdd
并且不会从 退出onEvent
,其余的逻辑无论如何都会被执行。
我知道我可以做类似的事情:
function safeAdd(e){
if( this.has(e) )
return false
this.add(e);
return true
}
function onEvent(e){
if( !safeAdd(e) )
return
// More logic
}
但是,由于我重复了很多次,我想尽可能简洁。