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*