グローバル変数を使用せずに他の関数から変数にアクセスする
2023-09-04 07:43:07
質問
グローバル変数は本質的に厄介で邪悪なものだといろいろなところから聞いていますが、オブジェクト指向でないJavascriptを行う場合、それを避ける方法がわかりません。たとえば、乱数などを使用した複雑なアルゴリズムで数値を生成する関数があり、その特定の数値をコールバックまたは何か他の関数で使用し続ける必要があるため、同じ関数の一部であることができないとします。
元々生成された数値がローカル変数であれば、そこからはアクセスできません。関数がオブジェクト メソッドであれば、数値をプロパティにすることができますが、そうではないので、このためにプログラム構造全体を変更するのはやや複雑すぎるように思われます。グローバル変数が本当に悪いのでしょうか?
どのように解決するのですか?
関数Aで計算された変数を関数Bで見えるようにするには、3つの選択肢があります。
- それをグローバルにする。
- オブジェクトのプロパティにする、または
- AからBを呼び出す際にパラメータとして渡す。
プログラムがかなり小さいのであれば、グローバルはそれほど悪いものではありません。 そうでなければ、私は3番目の方法を使用することを検討します。
function A()
{
var rand_num = calculate_random_number();
B(rand_num);
}
function B(r)
{
use_rand_num(r);
}
関連
-
[解決済み] AngularJSのグローバル変数
-
[解決済み] 関数内でグローバル変数を使用する
-
[解決済み] jQueryを使ってドロップダウンリスト(セレクトボックス)から選択されたテキストを取得する
-
[解決済み] PHPからJavaScriptに変数やデータを渡すにはどうしたらよいですか?
-
[解決済み] Androidでグローバル変数を宣言するには?
-
[解決済み] IDを持つDOMツリー要素はグローバルプロパティになるのか?
-
[解決済み] すべてのグローバル変数/ローカル変数を印刷しますか?
-
[解決済み】Python関数のグローバル変数?
-
[解決済み] jQueryの$という記号の意味は何ですか?
-
[解決済み] Javascriptで動的に命名されたメソッドを呼び出すにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ジェスト あるクラスの特定のメソッドをモックする方法
-
[解決済み] 配列からオブジェクトを生成する
-
[解決済み] 上級者向けJavaScript。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] JavaScriptを使用してHTML要素に属性を追加/更新するには?
-
[解決済み] JSXとLoadshを使用して、ある要素をn回繰り返す方法
-
[解決済み] JavaScriptで文字列を数値に変換する最速の方法は何ですか?
-
[解決済み] $.ajax実行中にローディングイメージを表示する
-
[解決済み] Promise : then vs then + catch [重複].
-
[解決済み] javascriptのキャンバスで画像をリサイズする (スムーズ)
-
[解決済み] JavaScriptでDIVを表示・非表示にするには?