2
私はconst
を好きで、私はswitch
が好きです。このIIFEスイッチステートメントは不必要なオーバーヘッドを引き起こしますか?
注:以下は単なる例です。それぞれの場合のコードはやや複雑で、返されるオブジェクトはJSXコンポーネントです。
はこの考えてみましょう:
let retval // can't declare as const!
switch (value) {
case 'a':
retval = 'aa'
break
case 'b':
retval = 'bb'
break
case 'c':
retval = 'cc'
break
case 'd':
retval = 'dd'
break
default:
retval = 'xx'
}
// mistakenly by purpose change retval here..
retval = function nope(){ return null }
を私ははこれに比べ、私のconstsを使用しますか:
const retval = (() => {
switch (value) {
case 'a':
return 'aa'
case 'b':
return 'bb'
case 'c':
return 'cc'
case 'd':
return 'dd'
default:
return 'xe'
}
})()
retval = null // nope you are safe here!, raises error
は、それが不要なオーバーヘッドを引き起こしていますか? ...またはエンジンはそれを利用するのだろうか?
実行される機能と、これはニート溶液である - 特定の場合です。しかし、これはすべてが処理され、メモリに格納されることを意味します。私はいくつかの複雑なJSXコンポーネントを構築し、それらを戻しています。私は、すべてのコンポーネントを構築する必要はありません、ちょうど正しいものです。このアプローチを使用すると、それらをすべて最初に構築するでしょうか? – Qwerty
は内容によって異なります。 ifが関数ならば、必要なものだけを実行することができます。 –
私は実際にそのような場合に関数を使用しているので、このアプローチは本当にクールです!私はそれに+1を与えることができるようにあなたの答えにメモを追加してください。とにかく、このアプローチと通常の「スイッチ」の違い、特に処理速度、有効性、およびリソースの点を含めて、私の2つの質問には一言も言いたいと思います。 – Qwerty