-1

JavaScriptコードを書いていますが、関数内のグローバル変数を変更してはいけないと言われました。なぜこれが問題になるのでしょうか?これに代わる標準的な方法はありますか?

4

2 に答える 2

3

どの言語でも、関数からグローバル変数を変更すると、通常、関数の出力が決定論的ではなくなるため、コードをたどるのが難しくなり、望ましくない副作用が生じることがよくあります。したがって、変数を適切にスコープすることで可能であれば回避する必要があります。コードを見ずに助けるのは難しいです

名前の破壊も問題です。ただし、グローバルの名前空間を変更することで簡単に修正できます。

最後に、「グローバル変数を変更すべきではない理由」という質問があるので、おそらくご存知のように、読み取り専用のグローバル (定数) は変更されないため、副作用がないため、実際には問題ではありません。

于 2013-03-06T21:15:45.613 に答える
0

この漫画を見る

グローバル変数は、スレッド セーフ システムのアンチテーゼです。それらを持つべきではありませんが、持っている場合は、1 つのスレッドのみがそれらを所有/変更する必要があります。それらは常にサービス層を通じて処理する必要があります。

于 2013-03-06T21:48:00.183 に答える