次のコード ブロックを参照してください。最適なオプションはどれですか? 基本的にみんな同じことをしている
例 1
var otherVars1
var otherVars2
var otherVars3
var valid; // create a boolean variable
// some precondition to set valid to true or false
....
if (valid || someRegex.test(value)) {
...
}
例 2
var otherVars1
var otherVars2
var otherVars3
// create a function that return a boolean
function isValid() {
...
return Boolean
}
if (isValid() || someRegex.test(value)) {
...
}
例 3
var otherVars1
var otherVars2
var otherVars3
// use self-invoke anonymous function directly
if ((function() {
...
return Boolean })() || someRgex.test(value)) {
...
}
これら 3 つの例を比較すると、次の理由から、自己呼び出し匿名関数 (例 3) を使用することを好みます。
不要な var を作成してメモリを割り当てる必要がない (例 1: 有効、例 2: isValid)
管理と整理が容易になるように、コードを 1 つずつ、またはモジュールごとにきれいに保つ
自己完結型であるため、自己呼び出し匿名関数の外部の変数が汚染されません
上記の点で間違っている場合は訂正してください。また、あなたの好みと理由を教えてください。