the_styles ? the_styles.appendTo('head'); the_styles=null : the_styles = $('.stylesheet').detach();
明らかに、これは有効ではありません。「;」に注意してください appendTo()
との間the_styles=null
。1行で書いて、そのような複数の式を保持するにはどうすればよいですか?
the_styles ? the_styles.appendTo('head'); the_styles=null : the_styles = $('.stylesheet').detach();
明らかに、これは有効ではありません。「;」に注意してください appendTo()
との間the_styles=null
。1行で書いて、そのような複数の式を保持するにはどうすればよいですか?
コンマ演算子を次のように使用します。
the_styles ? (the_styles.appendTo('head'), the_styles=null) : the_styles = $('.stylesheet').detach();
コンマ演算子について Mozilla Developer Center が書いている内容は次のとおりです。
単一の式を必要とする場所に複数の式を含める場合は、カンマ演算子を使用できます。この演算子の最も一般的な使用法は、for ループで複数のパラメーターを指定することです。
三項演算子が必要なのは誰ですか?
the_styles = !the_styles && $('.stylesheet').detach() ||
the_styles.appendTo('head') && null;
そうしないnull
と、最初の式の値によって常に2番目の式が強制的.detach()
に評価されるため、式を切り替える必要がありました。
賢いコードについての唯一のことは、コーヒー ブレークの後にコードに戻ると、自分でさえ意味をなさないということです。したがって、これははるかに優れています:
if(the_styles) {
the_styles.appendTo('head')
the_styles = null;
}
else {
the_styles = the_styles.detach('.stylesheet');
}
私には、上記の単純化されたバージョンでさえ意味がありません。何の部分は明らかですが、なぜそれをしているのですか?
the_styles ? (function() {the_styles.appendTo('head'); the_styles=null})() : <etc>
(function() {
コード ブロックをandでラップするだけ})()
です。
ここで難しいのは、なぜこれをやりたいのかということです。より良い解決策があるかもしれません!
私はglowcoderに同意しますが、それでも必要な場合:
the_styles ? function(){ the_styles.appendTo('head'); the_styles=null;}() : the_styles = $('.stylesheet').detach();
the_styles ? the_styles.appendTo('head') : the_styles = $('.stylesheet').detach();
上書きする場合は、null にする必要はありません。
the_styles=the_styles || $('.stylesheet').detach(); the_styles.appendTo('head');