2016-10-13 14 views
-2

コードの2つの抜粋です。彼らは同じことをする。私の質問は、どれがベストプラクティスを表しているのか、それが何の裏にあるのかです。あなたに感謝します!他の関数内の関数に引数を渡す


function foo(x){ 
    bar(); 
    function bar(){ 
     var y = x + 1; 
    } 
} 

function foo(x){ 
    bar(x); 
    function bar(x){ 
     var y = x + 1; 
    } 
} 

+0

あなたは何を除いていますか? –

+1

それは機能が何をするかによって大きく異なります。内部関数にパラメータを使用することが理にかなっていることがあります。それ以外の時間はありません。実際の機能を投稿すれば、私はあなたをより効果的に助けることができます。 – naomik

答えて

0

コードの2番目のスニペットは、コードの再利用性が高く、変数と関数の結合が少ないため、優れています。最初のコードスニペットの代わりに、以下のコードを使用することもできますが、それは良いアプローチではないため、あなたはそれを避けています。パフォーマンスが考慮される限り、バー関数にパラメータを渡していないため、コードを関数に渡すたびにCPUサイクルとリソースを消費するため、最初のコードが優れています。

var x=10; 
..... 
function foo(){ 
    bar(); 
    function bar(){ 
     var y = x + 1; 
    } 
} 
+0

ありがとう、それは私が探していた答え - 再利用性対性能! –

-1

それはこのことだろうと簡単な例のためので、私は、ベストプラクティスについて推論する読者のために簡単です何だと思います:

function bar(x) { 
    var y = x + 1; 
} 

function foo(x) { 
    bar(x); 
} 
-1

これらはほぼ同じで、あなたがwである場合を除いてアプリケーションの速度にはまったく影響しません本当に巨大なプログラムで釣り合っています。

ただし、コードの可読性のために、2番目のオプションを使用する必要があります。

また、静的関数 - > ex:foo.bar(x)を記述して使用できるJavaのような言語では、そのように書くことはできません。ですから、もっと学び、より良く書くつもりなら、2番目のものを使うだけです。

0

あなたが与えた例はあなたの質問にはあまり適していません。あなたの例では、あなたもちょうどこの行うことができます。

function foo(x){ 
    var y = x + 1; 
} 

をしかし、本当にあなたの関数がすべてでは何も達成していないようだ、とさえ私たちのためにそれが難しくなりますこと。あなたの質問に答えるには、状況です。 は、の問題に依存します。

関連する問題