- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javascript無名関数から変数にアクセス)
javascript無名関数から変数にアクセス
このQ&Aのポイント
- 無名関数からグローバル変数にアクセスする方法を御存知の方お教えいただけたら幸いです
- 無名関数内でalert(e.target.result);するとちゃんと結果が表示されるのでFileReaderの処理は成功している模様です
- 期待する結果はアラートで「結果」が表示されることですが、実際にはアラートで空白が表示されています
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
グローバル変数へのアクセスの仕方は間違っていません。 --- var hoge; (function () { hoge = '結果'; })(); alert(hoge); // 結果 --- reader.onloadend より先にグローバルコードの alert(hoge); が発動しているのではありませんか。 reader.onloadend の中でも alert('onloadend'); をして順番を確かめてみてはどうでしょう?
お礼
回答ありがとうございます! 仰るとおり 値が空になったのは、ロードが終わって関数が呼び出される前に、alertが発動されたのが原因でした onloadendより下に書いたコードは onloadendが完了した後に実行されるものだと勘違いしておりました 大変勉強になりました! 迅速かつ的確なご回答ありがとうございます!