次の例を考えてみましょう。
if (cache) {
x = cache;
} else {
x = cache = someMethod();
}
とにかくこれをより短くするためにcache ? x = cache : x = cache = someMethod();
?
編集:
提案されたすべてのソリューションに感謝します。問題のデータはブール値ではなく文字列であることに注意してください。
次の例を考えてみましょう。
if (cache) {
x = cache;
} else {
x = cache = someMethod();
}
とにかくこれをより短くするためにcache ? x = cache : x = cache = someMethod();
?
編集:
提案されたすべてのソリューションに感謝します。問題のデータはブール値ではなく文字列であることに注意してください。
x = cache || (cache = someMethod());
cache
以前に宣言および/または割り当てられているかどうかわからない場合、これはMaxArtの回答の修正です(短絡ブール評価とコンマ演算子を使用)。
x = (cache = window.cache || someMethod(),cache);
//note: 'window' may be another namespace
厳密モードでも機能しません。その場合、これは次のようになります。
'use strict';
var x = function(w){w.cache = w.cache || someMethod(); return w.cache;}(window);
これを行うためのクリーンな方法(boolsでも機能する)は次のようになります。
if (cache === undefined) { cache = someMethod (); }
x = cache;