WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:複数の関数で参照できる変数

AI [WriteDate : Wed May 30 13:34:17 2001]

JavaScriptの2つ以上の関数で、同じ変数を使用したいのですが、どうすればいいのでしょうか?

たとえば、
i="1"
j="2"
という変数を始めに設定して、それを後の関数すべてで使いたいんです。


むく [WriteDate : Wed May 30 13:38:42 2001]

<SCRIPT>タグの中で、関数(function)の中以外で宣言すれば、
グローバルな変数になるはず。


AI [WriteDate : Wed May 30 19:50:28 2001]

回答ありがとうございます。
やってみたのですが、
var p1 = 200;
はOKなのに、
var df1 = document.form1;
をfunctionの外に出すとエラーが発生・・・
どうしてなんでしょう!?^^;


ween [WriteDate : Wed May 30 20:23:56 2001]

<script> を <head> の中に書いてますよね?
var df1 = document.form1;
が実行された時点で、まだ document.form1 が存在していないのでエラーになるんだと思います。
function の外では var def1; と宣言するだけにして
funnction 内で(onload 後ならいつでもいいんですが)
def1 = document.form1;
と代入してやるようにすればうまくいくでしょう。


AI [WriteDate : Fri Jun 1 18:29:07 2001]

ということはすべての関数でdef1 = document.form1; の宣言が必要、ということですよね?

あと直接このスレッドの質問には関係ないんですが、ローン返済シュミレーションのスクリプトで</html>のあとにjavascriptを挿入してあるのを見ました。スクリプトはちゃんと動いていましたが、こういう記述は間違いではないのでしょうか?


じゃすみん [WriteDate : Fri Jun 1 18:50:29 2001]

>ということはすべての関数でdef1 = document.form1; の宣言が必要、ということですよね?
すべての関数には必要ない。
一番最初に呼ばれる関数だけに書けばいいよ。

↓凄く、はしょっているけど、例えばこんな感じ。
<!--
var def1;
function init() {
 def1 = document.form1;
}
function func1(){
 alert(def1);
}
//-->

<body onLoad="init();">
<form name="form1">
<input 〜
</form>
<a href="JavaScript:void(0);" onClick="func1();">def1の内容確認</a>


安芸川晴海 [MAIL] [URL] [WriteDate : Fri Jun 1 20:37:15 2001]

>あと直接このスレッドの質問には関係ないんですが、ローン返済
>シュミレーションのスクリプトで</html>のあとにjavascriptを挿
>入してあるのを見ました。スクリプトはちゃんと動いていました
>が、こういう記述は間違いではないのでしょうか?

間違いです。IEやなんかでは(エラー補正機能が強力なので)何も問題を発生しないかも知れませんが、明らかに間違いではあります。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]
ChaichanPAPA's World