Javascriptで関数の外から関数内の変数を使いたい
2020.03.31
みさなま、こんにちは。
みなさんは Javascript をどれくらい使っていますか?
私はサイト制作をする際、あくまでもトリガーとしての使い方に絞ってきました。
例えばスライドメニューなどを実装する際、 Javascript の .slideToggle を使用せず、クリックの判定で Javascriptを使用し、あとは CSS でとあくまでも使い分けてきました。
しかし最近、ツールの作成にはまったことで、 Javascript をメインに使用するようになってきました。
[webデザイナー必見]アスペクト比を簡単に計算するツールを作成しました
そして現在、新しいツールを作成中、変数の初歩的なところで躓きました。
関数の外から関数内で定義した変数にアクセスしたい
1 2 3 4 5 |
function scope() { var a = ('変数1'); } scope(); alert(a); |
こんな感じに関数内で定義した変数を、変数の外で使用すると「(defined)定義していません」と出てしまいます。
それも当然で関数の中で定義した変数は関数内でしか使用できません。
これをローカル変数と言い、関数の内外関係なくアクセスしたいのであればグローバル変数を定義しなくてはいけません。
グローバル変数を定義しよう
1 2 3 4 5 6 7 |
var a; function scope() { a = ('変数1'); } scope(); alert(a); |
こんな感じで、グローバル変数を定義し、関数内で再定義することで、関数の外からアクセスすることができるようになりました。
ただ調子に乗ってグローバル変数を沢山使用していると、管理が難しくなるので気を付けてください。