3

多くの場合、私はこのような関数を定義して呼び出します - 特にフラグを使用する場合:

function cat(doMeon, doCloseEyes)
{
  if (doMeon) console.log("Meon...");
  if (doCloseEyes) console.log("Hmm, I closed my eyes..."); 
}
...
// And then call, using flags. Names are temporary, only for readability
cat(doMeon=true, doCloseEyes=true);

「cat(true, true)」を実行することもできますが、読みやすさが損なわれることに注意してください。

しかし、これがもたらす問題は、2 つの変数がグローバル スコープにあることです。また、グローバル スコープを汚染するべきではありません。しかし、これはできません:

// Doesn't work...
cat(var doMeon=true, var doCloseEyes=true);

ここでベストプラクティスとして使用できるアプローチはありますか? (注: これらの変数を外部で定義するのはあまり良い考えではありません。)

4

2 に答える 2

2

読みやすく引数を渡す方法の 1 つは、各引数を含むオブジェクトを名前付きプロパティとして渡すことです。

すなわち

cat({
    doMeon: true,
    doCloseEyes: true
});

関数内では、次のことができます。

function cat(_props) {
    if (_props.doMeon) console.log("Meon...");
    if (_props.doCloseEyes) console.log("Hmm, I closed my eyes..."); 
    ....
}
于 2013-03-28T03:41:58.743 に答える
0

代わりに 2 つの関数を作成できます。

function catDoMeon()
{
  console.log("Meon...");
}

function catDoCloseEyes()
{
  console.log("Hmm, I closed my eyes..."); 
}

catDoMeon();
catDoCloseEyes();
于 2013-03-28T03:46:47.673 に答える