JavaScript情報交換所(プログラミング既習者専用) [無断転載禁止]©2ch.net (766レス)
JavaScript情報交換所(プログラミング既習者専用) [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1449440793/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
598: デフォルトの名無しさん [] 2020/07/23(木) 07:13:47.98 ID:qAfVnVsp thisの正体を見分けるコツはないですか? http://mevius.5ch.net/test/read.cgi/tech/1449440793/598
600: デフォルトの名無しさん [sage] 2020/07/23(木) 07:36:27.79 ID:/b5pS+w+ >>598 thisは実行時に変わるからコードを見てもわからない つまり呼び出されているコードを見てもわからない。 「誰が呼び出しているか?」を知る必要がある。 同じthisであっても「あれ」に登録して「あれ」から 呼び出されれば「それ」とは違うthisの場合がある。 だからthisが何かは仕様を調べるしかない 関数の引数にobjが入ってる場合、このobjの正体はなんですか?と 言ってるのと同じ質問だよ http://mevius.5ch.net/test/read.cgi/tech/1449440793/600
606: デフォルトの名無しさん [sage] 2020/07/23(木) 20:38:07.50 ID:QHkNbR5l >>598 ID:/b5pS+w+ の言っていることは全面的に正しいが、補足すると、 > thisの正体を見分けるコツはないですか? こんな事を言っている時点で糞サイト(或いはゴミ本)に騙されているから止めとけ。 見分ける必然性も意味もない。単なる暗黙の引数程度でしかなく、 実際にそれなりに組織的にコーディングするとcallはそれなりに使う。 DOM APIのthisがe.currentTargetを指すのはそもそもJava用の仕様、 つまりJavaでもクライアントスクリプトを書けるようにする為の仕様らしい。(とここ5chで聞いた) しかし現在はJavaで書く奴なんて一人もいないし、JavaScriptにおいてはe.targetを全面的に使うのが正しい。 理由は、 1. thisにはe.currentTargetが入っているが、マトモなサイトなら通常はbubbleを利用する為、e.target主体で書くことになる。 つまりこの仕様のthisでは使い物にならない。 2. e.currentTragetで役に立つ場合は、Elementに直接onXXXかaddEventListenerした場合だが、 こんな事をやっているのはjQueryを使っている程度の簡単なサイトだけ。 やれば分かるがbubbleを利用した方が実行効率もよく、コードも綺麗になるから、マトモなサイトは全部そうしてる。 ただし、Elementに直接貼った方が直感的で分かりやすいので、jQueryのような簡単/初心者向けの場合には活用される。 (なおjQueryでもbubble主体で書くことは可能ではあるが、それをやるとjQueryの意味がほぼ無くなるので普通はやってないと思う) http://mevius.5ch.net/test/read.cgi/tech/1449440793/606
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.042s