JavaScript情報交換所(プログラミング既習者専用) [無断転載禁止]©2ch.net (766レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
595(3): デフォルトの名無しさん [] 2020/07/23(木) 00:05:54.40 ID:qAfVnVsp(3/7) AAS
$("div").click(function(){
$(this).css('background','red');
})
のこの$(this)が$("div")を指す理由はなんですか?
Javaではthisというのはそれを定義したクラスのインスタンスを指すと習いましたが。
599(1): デフォルトの名無しさん [sage] 2020/07/23(木) 07:32:15.26 ID:/b5pS+w+(1/5) AAS
>>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化するときなど少しずつ移植できる。
601(1): デフォルトの名無しさん [sage] 2020/07/23(木) 07:39:49.30 ID:/b5pS+w+(3/5) AAS
>595
Javaではthisを変えられることができないが
JavaScriptはthisは呼び出し側で与えるオブジェクト
JavaScriptだけではなくRubyやPerlなどいくつかの言語は呼び出し側でthisを変更できる
707: デフォルトの名無しさん [sage] 2020/07/27(月) 23:32:47.58 ID:QhcinMDB(1/4) AAS
そういやあっちどうなってんのかな?って思って見てみたが、
>>595ってマルチポストをこっちに収斂したのかよ!
2chスレ:hp
thisが何か分からないレベルの奴は永久にWeb板に引きこもってろ。
というか、お前ら何がやりたいんだ?
全部初心者スレにするから、お前らも完全に知ってるくだらない話題につき合わないといけないわけであって、
そんなスレばかりではお前らにとってもメリットが無いだろ。
他人の手助けをするのはいいが、手助けばかりして自身が成長できないようなら意味無いだろ。
今回のは完全にjQuery廚が悪いようだが。
jQuery厨も結局全く成長しておらず、俺の最初の話が全く通じてないのもかなり酷い。
それで向こうでブッ叩かれたからってこっちに来るのは迷惑でしかないから止めてくれ。
お前(jQuery厨)の問題は、前から言ってるが、書いてるコードの規模が小さすぎる事だ。
少し大きなのを書けば、俺が言ってるように、イベントハンドラが単発の単純な関数で終わることはなくなって、
共通変数/関数をどこに配置すべきかを考えるようになるんだよ。
お前はそこにすら至ってないから俺が何を言っているのかさっぱり理解出来ない。
そして一行で書ける関数に異様に拘るわけだ。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.039s