JavaScript情報交換所(プログラミング既習者専用) [無断転載禁止]©2ch.net (766レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) レス栞 あぼーん

599
(1): デフォルトの名無しさん [sage] 2020/07/23(木)07:32 ID:/b5pS+w+(1/5)
>>595
> のこの$(this)が$("div")を指す理由はなんですか?

DOM APIとの互換性

例えば、これのイベントハンドラの中身を書き換えるならば
$("div").click(function(){
  $(this).css('background','red');
})

このようになる。(おまけで引数のjQuery eventを追加)
$("div").click(function(event){
  this.style.background = 'red';
})

このイベントハンドラ(function)はDOM APIと互換性があるので全く同じように使える。
(引数のeventはjQuery eventではなくDOM APIの eventだがある程度の互換性がある)
divElement.addEventListener('click', unction(event){
  this.style.background = 'red';
})

つまりイベントハンドラをDOM APIのものと互換性があるようにしているのが理由
そうすることで、コードを相互に変換しやすくなる。
例えば後からjQuery化するときなど少しずつ移植できる。
600
(1): デフォルトの名無しさん [sage] 2020/07/23(木)07:36 ID:/b5pS+w+(2/5)
>>598
thisは実行時に変わるからコードを見てもわからない
つまり呼び出されているコードを見てもわからない。
「誰が呼び出しているか?」を知る必要がある。

同じthisであっても「あれ」に登録して「あれ」から
呼び出されれば「それ」とは違うthisの場合がある。

だからthisが何かは仕様を調べるしかない
関数の引数にobjが入ってる場合、このobjの正体はなんですか?と
言ってるのと同じ質問だよ
601
(1): デフォルトの名無しさん [sage] 2020/07/23(木)07:39 ID:/b5pS+w+(3/5)
>595
Javaではthisを変えられることができないが
JavaScriptはthisは呼び出し側で与えるオブジェクト
JavaScriptだけではなくRubyやPerlなどいくつかの言語は呼び出し側でthisを変更できる
604: デフォルトの名無しさん [sage] 2020/07/23(木)08:24 ID:/b5pS+w+(4/5)
>>603
違うぞ。eventはおまけ。thisの話とは直接関係ない
605: デフォルトの名無しさん [sage] 2020/07/23(木)08:25 ID:/b5pS+w+(5/5)
ようするにjQueryはブラウザ標準のDOM APIと
互換性をもたせて作られているということ
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.866s*