私は本当にJavaScriptが初めてで、return
キーワードにつまずいた。基本的に、これらの2つのステートメントの違いは何ですか?
<input type="checkbox" onclick="doAlert()" />
対
<input type="checkbox" onclick="return doAlert();" />
本質的に、両方が同じ結果を返し、関数を呼び出しましたが、それ以上ありますか?どんな助けも大歓迎です:)。ありがとう!
関数からfalseを返すと、チェックの効果が中止されます。 htmlプロパティにハードコーディングされた関数のネイティブ(新しいローカル関数になったため)であるため、Wordの「return」なしでhtmlを記述すると、関数が実行され、戻り値が失われます。
function doAlert() {
if(some_condition)
return false;
else
return true;
}
function some_local_function() {
doAlert();
}
関数 some_local_function
は値を返しませんが、doAlert
は戻ります。
「return」を記述すると、次のような2番目の関数を記述したようになります。
function some_local_function() {
return doAlert();
}
これにより、doAlertの戻り値が保持されます。 trueの場合-アクションが実行されます(チェックボックスがチェックされます)-そうでない場合-キャンセルされます。
ライブエクスパムはここで見ることができます: http://jsfiddle.net/RaBfM/1/
一部のhtml要素には、true/falseが返されたときに異なる動作をするJSイベントがあります。例えば:
<input type='submit' value='Click Me' onSubmit='ValidateForm();'>
...対...
<input type='submit' value='Click Me' onSubmit='return ValidateForm();'>
2番目のインスタンスでは、ValidateForm
関数がfalseを返した場合、フォームは送信されません。最初の関数では、関数がfalseを返した場合でもフォームは送信されます。
このシナリオでは、return
キーワードを使用した場合と使用しない場合の違いがわかると思います。
[〜#〜] updated [〜#〜]簡略化するために、return
キーワードを使用する場合、onsubmit
を呼び出した関数に値を返します。それなしでは、単にイベントハンドラで名前を指定した関数を呼び出して、何も返しません。
return
をfunction()に追加すると、ブラウザのデフォルトの動作が無効になり、submit
のジョブが無効になります。関数がfalseを返し、フィールドに値を再び入力できる場合、同じページに留まることを意味します。
Function()でreturn
を使用しない場合、submit
関数はそのジョブを実行し、返された結果をtrueまたはfalseに関係なく、指定された次のページにリダイレクトします。 。