しばらく前に読んだことがありますが(残念ながらどこか思い出せません)、return
JavaScriptのすべての関数の最後にステートメントを配置するのが賢明でした。これは、その関数で作成されたオブジェクトと変数のメモリをクリアするためです。
それには真実がありますか?
しばらく前に読んだことがありますが(残念ながらどこか思い出せません)、return
JavaScriptのすべての関数の最後にステートメントを配置するのが賢明でした。これは、その関数で作成されたオブジェクトと変数のメモリをクリアするためです。
それには真実がありますか?
その中に真実はありません。なし。
いいえ。
標準ECMA-262ECMAScript言語仕様(12.9)から:
構文
ReturnStatement:
return ;
return
[ここにLineTerminatorはありません]式;
[...]
return
ステートメントにより、関数は実行を停止し、呼び出し元に値を返します。省略した場合Expression
の戻り値はundefined
です。それ以外の場合、戻り値は式の値です。
ただし、その逆が当てはまります。return
ステートメントは、メモリが解放されるのを防ぐことができます。
関数と関数スコープから-MDN#変数の保存:
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
が返さ
x
れるときにどのように保存されるかに注意してください。inside
クロージャは、参照するすべてのスコープの引数と変数を保持する必要があります。各呼び出しは潜在的に異なる引数を提供するため、への呼び出しごとに新しいクロージャが作成されますoutside
。inside
返されたものにアクセスできなくなった場合にのみ、メモリを解放できます。