回答編集履歴

2

ロジックミスの修正

2021/03/17 16:42

投稿

marasonPD
marasonPD

スコア168

test CHANGED
@@ -1,3 +1,9 @@
1
+ ## 間違えました。
2
+
3
+ 下記の案のように`image.addEventListener('load', this.handleOnLoad(image));`としてしまうと、`load`時に`this.handleOnLoad(image)`が呼ばれるのではなく、その場で`this.handleOnLoad(image)` を実行した値が引数として渡されてしまうので誤りでした。失礼しました。
4
+
5
+
6
+
1
7
  ## 解決案
2
8
 
3
9
  イベントハンドラ部分を別途`methods`の1つとして定義することで問題を回避できそうです。
@@ -5,8 +11,6 @@
5
11
  例えば、`methods`部分を下記のように実装します。
6
12
 
7
13
 
8
-
9
- ```Javascript
10
14
 
11
15
  getWidthAndHeight() {
12
16
 
@@ -38,8 +42,6 @@
38
42
 
39
43
  }
40
44
 
41
- ```
42
-
43
45
 
44
46
 
45
47
  ## 解説

1

誤字修正

2021/03/17 16:42

投稿

marasonPD
marasonPD

スコア168

test CHANGED
@@ -56,7 +56,7 @@
56
56
 
57
57
  また`this`はVueコンポーネントの中であまりにも多用するため勘違いしそうになりますが、必ずしもVueコンポーネントで定義した`data`や`method`がある場所を参照するものではありません。`this`が何を指すかについて解説すると大変パターンが多くなるので気になれば調べてみてください。
58
58
 
59
- izayaさんが実装している`addEventlistener`の第2引数に設定している`function`内にある`this`も期待した所を参照できていません。ここでの`this`はおそらく`image`を指しています。`function`内で`console.log(this)`するなどてそれを確かめることができます。
59
+ izayaさんが実装している`addEventlistener`の第2引数に設定している`function`内にある`this`も期待した所を参照できていません。ここでの`this`はおそらく`image`を指しています。`function`内で`console.log(this)`することでそれを確かめることができます。
60
60
 
61
61
 
62
62