質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

1467閲覧

window.addEventListenerの記述位置

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/06/16 07:36


function a(){
b()
}
b()を実行させるには、a()が実行される必要があると認識しています。また、window.onloadはDOMレンダリング後に一度だけ実行されるメソッドだとも認識しています。...この場合、下のコードにおいて、window.onload処理が行われた後にも、window.onload内に記述されているWmSize()が処理されるのでしょうか?WmSize()を外に記述しても結果は同じなので、グローバルということなのでしょうか?

window.onload=function(){        //⬅︎          
gImgMap=new Image();
gImgMap.src="map.png";
gScreen=document.createElement("canvas");
gScreen.width=128;
gScreen.height=120;
WmSize();
window.addEventListener("resize",function(){WmSize()}); //⬅︎
setInterval(function(){WmTimer()},33);
}
function WmSize(){
const ca=document.getElementById("main");
ca.width=window.innerWidth;
ca.height=window.innerHeight;
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ku__ra__ge

2020/06/16 08:04

> WmSize()を外に記述しても結果は同じなので、グローバルということなのでしょうか? 「グローバルということ」とは一体何のことでしょう。 windowはグローバル変数です。 WmSize関数はグローバル関数です。 ……で回答になっていますか?
guest

回答2

0

ベストアンサー

b()を実行させるには、a()が実行される必要があると認識しています。

いや、定義したスコープが有効な範囲からならどこでも実行できますよ。
ただし、b関数を定義してればですが。

window.onloadはDOMレンダリング後に一度だけ実行されるメソッドだとも認識しています。

厳密に言えば違います。
レンダリング完了ではなく、
HTML上にマークアップされている、全てのリソースを読み込んだ後に実行されます。

window.onload処理が行われた後にも、window.onload内に記述されているWmSize()が処理されるのでしょうか?WmSize()を外に記述しても結果は同じなので、グローバルということなのでしょうか?

参照範囲が変わるので、使えた変数が使えなくなる場合がありますが、
今回のコードは、同関数内のローカル変数しか参照していないので、そうなりますね。
グローバルに定義すればグローバルになります。

投稿2020/06/16 08:27

miyabi_takatsuk

総合スコア9528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/06/16 15:01

やっと分かった!!分かりやすい回答ありがとうございます????
guest

0

window.onload処理が行われた後にも、
window.onload内に記述されているWmSize()が処理されるのでしょうか?

window.onload内ににWmSize()は2つありますが、window.addEventListener("resize", function(){WmSize()} );で記述されたWmSize()はリサイズされるたびに呼び出されます。

投稿2020/06/16 08:03

ku__ra__ge

総合スコア4524

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問