teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

表現の修正

2016/09/19 12:36

投稿

hirohiro
hirohiro

スコア2068

answer CHANGED
@@ -11,4 +11,4 @@
11
11
  後方の括弧内の値は関数への引数に対応します。
12
12
  「javascript 即時実行 引数」あたりでGoogle検索するとそれらしい記事がhitすると思います。
13
13
  ここで引き渡されたthisは(その括弧の中では)未定義なので、this.div.addEventListener('click',(function(i){})(this),false);これの外まで探索され、そこにあるthisが参照されます。
14
- 該当スコープに変数が無い場合、外のスコープにあるならばそれが使用されるのがクロージャーの特徴という主旨の記事なんじゃないでしょう
14
+ 該当範囲に変数が無くても、外にあるならばそれが使用されるのがクロージャーの特徴という主旨の記事なんじゃないかと思います。

2

修正

2016/09/19 12:36

投稿

hirohiro
hirohiro

スコア2068

answer CHANGED
@@ -10,5 +10,5 @@
10
10
  こういう構造になっています。functionを括弧で包むとその関数はそこで即時実行されます。
11
11
  後方の括弧内の値は関数への引数に対応します。
12
12
  「javascript 即時実行 引数」あたりでGoogle検索するとそれらしい記事がhitすると思います。
13
- ここで引き渡されたthisはthis.div.addEventListener('click',(function(i){})(this),false);これの外まで探索され、そこにあるthisが参照されます。
13
+ ここで引き渡されたthisは(その括弧の中では)未定義なので、this.div.addEventListener('click',(function(i){})(this),false);これの外まで探索され、そこにあるthisが参照されます。
14
- 無いときに外のスコープまで探し行くのがクロージャーの特徴という意味合いの記事なんじゃないでしょうか?
14
+ 該当スコープに変数が無い場合、外のスコープにあるならばそれが使用されるのがクロージャーの特徴という主旨の記事なんじゃないでしょうか?

1

修正

2016/09/19 12:31

投稿

hirohiro
hirohiro

スコア2068

answer CHANGED
@@ -1,13 +1,14 @@
1
- **質問1への関して**
1
+ ###質問1への関して
2
2
  > this.div = document.createElement("div");
3
3
  this.div.addEventListener
4
4
 
5
5
  ページに表示されるdiv要素はthis.divには紐付けられていますが、Mydivそのものでは無いからではないでしょうか?click時に呼び出された関数のthisはdiv1のdomオブジェクトの方であり、Mydivのインスタンスでは無いといった感じ?
6
6
  > addEventListener() を使って要素にハンドラ関数を設定したとき、ハンドラの中の this の値は要素への参照となります。これはハンドラに渡された event 引数の currentTarget プロパティの値と同じです。[MDN](https://developer.mozilla.org/ja/docs/Web/API/EventTarget/addEventListener)
7
7
 
8
- **質問2に関して**
8
+ ###質問2に関して
9
9
  (function(i){})(this)
10
10
  こういう構造になっています。functionを括弧で包むとその関数はそこで即時実行されます。
11
- 括弧内の値は関数への引数に成ります。
11
+ 後方の括弧内の値は関数への引数に対応します。
12
+ 「javascript 即時実行 引数」あたりでGoogle検索するとそれらしい記事がhitすると思います。
12
13
  ここで引き渡されたthisはthis.div.addEventListener('click',(function(i){})(this),false);これの外まで探索され、そこにあるthisが参照されます。
13
14
  無いときに外のスコープまで探しに行くのがクロージャーの特徴という意味合いの記事なんじゃないでしょうか?