2011-01-03 18 views
4

youth return/stop実行をboxから実行することはできますか?直接、ないような何か:呼び出す関数内から外部関数を中止する

function youth(){ 
    var check = true; 

    function box(){ 
    //code 
    check = false; 
    } 

    //code 
    while(check){ 
    //code; 
    } 
    return false;  
} 

(これbox変更check変数がある場合)

+0

正確に何を達成しようとしていますか?実際のコードを引用します –

+3

@difitalFreshあなたの質問をよりよく要約するためにあなたの投稿のタイトルを変更しました。私が間違っていて、正しく要約しなかったならば、それを修正して、ナックルで私を叩いてください。 – Phrogz

答えて

8

いいえ、あなたは内部機能(から例外をスローしない限り、あなたは、することはできませんが、それは実際にカウントされません。とにかく良いデザインパターンではありません)。

呼び出し元の関数が同じコンテキストで宣言されていない可能性があるため、関数が呼び出し元に値を返すようにすることはできません。おそらく関数の引数を受け入れる他の関数です渡された関数は呼び出された関数の振る舞いを変更できないはずです。

+0

ありがとう、私はちょうど私のコードをそのように見せるためにいくつかの重要なアイデアが欠落していないことを確認したかったのです。 – tcooc

+0

@ digitalFresh:これを達成するために、関数の戻り値は常に使用できます。たとえば、内部関数は実行を継続したい場合はtrueを返します。あなたは 'if(!box()){return;}を書く必要があります。 } '。 – cdhowie

関連する問題