2017-02-07 14 views
0
var check = someCheck(); 
if (check){ 
    doOne(check); 
}else{ 
    doTwo(); 
} 

check varを定義せずに同じコードを書くことはできますか?最後のif文条件結果値

if (someCheck()){ 
    doOne(<magic-value-passed-which-is-result-of_someCheck()>); 
}else{ 
    doTwo(); 
} 

なお、チェック以下、このようなものは、すべての関数呼び出しが返すことができるもの、真、または任意のオブジェクトまたはnullまたは未定義である可能性があります。私は

var condition; 
function setCondition(stmt){ 
    condition = stmt; 
} 

if (setCondition(someCheck())){ 
    doOne(condition) 
}else{ 
    doTwo(); 
} 

として、次の解決策を考えています

はまだsetConditionが長い名前であるように、したいが、シンプルかつより少ないコードを書く、この1とあまり満足していません。 ifをチークすることができますか?ifはどこですか?ここにはの機能がありますか?

+1

あなたはいつも再帰関数を作ってみることができます。 – GiamPy

+0

このようなことをする別の言語(JavaScript以外)の例がありますか? (文脈のために) –

+0

これはJavaScriptでは不可能です –

答えて

2

はい、似た何かが(JavaScriptなど)C-ような言語では実際に可能である:

if (check = someCheck()) { ... } // 'check' should be already defined 
2

あなたは生命維持に一部を包むことができます。

ES6

(v => v ? doOne(v) : doTwo())(someCheck()); 

ES5

void function (v) { v ? doOne(v) : doTwo(); }(someCheck());