私はいつかreturn
ステートメントをJavaScript内のすべての関数の最後に置くことが賢明であることを覚えています。残念ながら、その関数で作成されたオブジェクトと変数のメモリがクリアされるためです。常に関数を返すのは賢明ですか?
それは本当ですか?
私はいつかreturn
ステートメントをJavaScript内のすべての関数の最後に置くことが賢明であることを覚えています。残念ながら、その関数で作成されたオブジェクトと変数のメモリがクリアされるためです。常に関数を返すのは賢明ですか?
それは本当ですか?
そこには真実はありません。なし。
お返事ありがとうございます。私はその主張に真実はないと思ったが、私は今日それについて考えていて、オンラインで何かを見つけることができなかった。再度、感謝します。 – user1265617
号
Standard ECMA-262 ECMAScript Language Specification(12.9)より:
構文
ReturnStatement:
return ;
return
[ここでないLineTerminator] 式;
は、[...]
return
文は実行を停止し、 呼び出し元に値を返す関数の原因となります。Expression
が省略された場合、戻り値はundefined
です。それ以外の場合、戻り値はの式の値になります。
逆のことが当てはまりますが、return
ステートメントによってメモリが解放されるのを防ぐことができます。 Functions and function scope - MDN # Preservation of variablesから
:inside
が返されたときx
が保存される方法
function outside(x) {
function inside(y) {
return x + y;
}
return inside;
}
fn_inside = outside(3);
result = fn_inside(5); // returns 8
result1 = outside(3)(5); // returns 8
注意してください。クロージャは、参照するすべてのスコープで引数と変数を保持する必要があります。各呼び出しは異なる引数を提供するので、
outside
への呼び出しごとに新しいクロージャが作成されます。返されたinside
にアクセスできない場合にのみ、メモリを解放することができます。
関数は、 'return'文を使用するかどうかにかかわらず、常に返します。 'return'ステートメントを追加すると、メモリや変数をクリアすることはありません。 –