ローカル変数を他の関数内で使うには?
[上に]
[前に]
[次に]
おがまん
[E-Mail]
[HomePage]
1999/09/26(日) 05:14:13
ある関数内で使っているローカル変数を、
他の関数内でも使えるようにするにはどうしたらいいですか?
例えば、
var i=0;
function a(){
timeSetout("a()",1000);
i++;}
で変化している変数iを
function b(){
top.location.href=i+".html";}
の中でも使いたいです。
function a()は<body onLoad="a()">
で使って、
function b()は<a href="JavaScript:b()">リンク</a>
で使いたいです。
JavaScriptを勉強し始めて、まだまだなので、ぜんぜん解決方法がわかりません。
どうか、お願いします。
J.Naka
1999/09/26(日) 13:18:32
JavaScriptは、まだ超初心者なんで、言語特有の細かい動きとか把握してないのですが、一般的なところを。
ローカル変数とは、関数内でのみ有効&関数外からは見えないからローカルと言うのであって、関数を跨いで使用できる変数はグローバル変数です。
さて、おがまんさん提示のコードの var i=0; は関数外で宣言されているので、グローバル変数となってます。だから、i は、全ての関数から操作することが出来ます。
----------
補足:
ローカル変数は、関数毎に独立というだけでなく、呼ばれた関数毎に独立。つまり、呼ばれる毎に独立ということ。
ローカル変数iを持つAという関数を呼ぶと、呼ばれた時点てiが生成されます。で、今呼んだAが終了する前に、更にAを呼ぶ(A’とする)とi(i’とする)が新たに生成されます。この、iとi’は全く別物です。独立してます。そして、関数の終了時点でiとi’は消えてなくなります。これが、関数内のローカル変数という物の動作実体です。
#さてさて、外して無い事を願います(^^;
おがまん
1999/09/26(日) 15:27:37
[[解決]]
解答,ありがとうございました.
グローバルとローカルの違いをなんだか,勘違いしてたみたいでした.
[上に]
[前に]
[次に]