JavaScriptを使用していて、グローバル変数を作成しています。私はそれを関数の外で定義し、関数内からグローバル変数の値を変更して別の関数から使用したいのですが、どのようにすればいいですか?関数内のグローバル変数の値を変更する方法
答えて
ちょうど関数内の変数を参照くださいwindow
オブジェクトを使用します。魔法はありません、ただそれの名前を使用してください。グローバルに作成されている場合は、グローバル変数を更新します。
var
をローカルで宣言することでこの動作を無効にできますが、var
を使用しない場合、その変数がグローバルに宣言されている場合、関数で使用される変数名はグローバルになります。
これは、変数を常にvar
で明示的に宣言することをお勧めします。あなたがそれを忘れてしまうと、偶然にもグローバルで混乱することになります。それは簡単な間違いです。しかし、あなたのケースでは、これは回り、あなたの質問に対する簡単な答えになります。
var a = 10;
myFunction();
function myFunction(){
a = 20;
}
alert("Value of 'a' outside the function " + a); //outputs 20
この素晴らしい単純な例のおかげです。これの論理は私の頭の中でやっていた。ちょうど4dの思考に慣れなければならない。 – Mikey3Strings
その変数の名前を使用してください。
JavaScriptでは、変数は、関数のパラメータである場合、または変数の名前の前にvar
キーワードを入力して明示的にローカルとして宣言した場合、関数のローカルにのみあります。
ローカル値の名前は、グローバル値と同じ名前を持つ場合は、
このjsfiddle
x = 1;
y = 2;
function a(y) {
// y is local to the function, because it is a function parameter
alert(y); // 10
y = 3; // will only overwrite local y, not 'global' y
var x; // makes x a local variable
x = 4; // only overwrites local x
alert(y); // 3
alert(x); // 4
// global value could be accessed by referencing through window object
alert(window.y) // 2 global y
}
a(10);
alert(x); // 1; this is the global value
alert(y); // 2; global as well
グローバル変数とローカル宣言された変数の間の名前の衝突とそのアクセス方法を記述する+1。 – gdbj
<script>
var x = 2; //X is global and value is 2.
function myFunction()
{
x = 7; //x is local variable and value is 7.
}
myFunction();
alert(x); //x is gobal variable and the value is 7
</script>
関数内で 'var'キーワードを使用しないでください。' document.getElementById( "outside")を扱う必要はありません。value = x; ' –
- 1. グローバル変数を使用せずに関数内の変数値を変更する方法
- 2. パラメータを使用して関数内のグローバル変数を変更する方法
- 3. JavaScript関数値のグローバル変数値の変更
- 4. グローバル変数をjavacriptの.click関数内のwindow.prompt()変数に変更する
- 5. socket.on内の関数の値をグローバル変数に保存する方法は?
- 6. 関数内のグローバル変数を変更できない(JavaScript)
- 7. 関数内のグローバル変数にアクセスする方法は?
- 8. 関数内の値を変更する変数を取得する方法
- 9. 関数内のグローバル変数の値を設定する
- 10. 関数内のグローバル変数を更新し、angularjs内の関数の外側で使用する方法
- 11. 変数値をトップレベル変数に反映する関数内で変数値を更新する方法
- 12. 関数内のjquery変数、グローバルを扱う方法は?
- 13. 関数内からグローバル変数を変更できません
- 14. 関数内のグローバル変数へのアクセス
- 15. 関数内の変数の値を変更する
- 16. R内の関数内で非グローバル変数を変更できますか?
- 17. Bash関数は値を返す一方で、グローバル変数を変更します
- 18. 関数内の値を変更する方法
- 19. ジャスミンテストでのグローバル変数値の変更
- 20. 呼び出すことなく関数内のグローバル変数を変更する
- 21. 関数内のグローバル変数の値がNULLです
- 22. グローバル変数内の変更機能
- 23. 関数内のphpグローバル変数
- 24. メイン関数python内のグローバル変数
- 25. 親関数内で変数を変更する方法は?
- 26. グローバル変数を変更する関数のミューテックスロック
- 27. グローバル変数値を変更するボタンコマンドの引数python tkinter
- 28. モジュール内の関数からグローバル変数を更新
- 29. ビュー内の変数の値を変更する方法は?
- 30. CUDAのグローバル関数とデバイス関数の__device__変数を変更する方法は?
この私のために動作しません: 国= 'foo' で $アヤックス({ URL: '/いくつかのエンドポイント'、 成功:機能(データ){ 国= data.country;} }); console.log(国)//出力 'foo' –
@ MarkSimpson - あなたの例では、 'console.log'がすぐに実行されますが、ajaxの成功関数はある時点でのみ実行されるため後でajax呼び出しが実際に応答を返すときに発生します。これは、ajaxの非同期性に関する基本的な点です。クロージャー関数のコードは、そのコードの周りを順番に実行されません。これは、イベント駆動型コードについて学ぶときに把握することが重要です。 – Spudley
説明をありがとう@Spudley –