JavaScript情報交換所(プログラミング既習者専用) [無断転載禁止]©2ch.net (766レス)
JavaScript情報交換所(プログラミング既習者専用) [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1449440793/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
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
609: デフォルトの名無しさん [sage] 2020/07/23(木) 21:58:10.24 ID:k24nyzXR >>606 > (なおjQueryでもbubble主体で書くことは可能ではあるが、それをやるとjQueryの意味がほぼ無くなるので普通はやってないと思う) イベントのキャプチャフェーズとバブリングフェーズの話をしてるなら jQueryはバブリングフェーズしか対応してません jQueryの意味がなくなる?なぜですか? そもそもIE8以前がキャプチャフェーズに対応してないので それ以前からあるjQueryでは実装が不可能です。 (jQuery 4.0では実装されるらしい) 間違ったことを書かないでください http://mevius.5ch.net/test/read.cgi/tech/1449440793/609
612: デフォルトの名無しさん [sage] 2020/07/23(木) 22:41:43.25 ID:k24nyzXR >>606 > DOM APIのthisがe.currentTargetを指すのはそもそもJava用の仕様、 > つまりJavaでもクライアントスクリプトを書けるようにする為の仕様らしい。(とここ5chで聞いた) 逆です。Javaではe.currentTargetを使い、thisは使えません。 (当時の)Javaでは言語仕様上の制限でイベントハンドラとして関数を使用することはできません。 イベントハンドラはオブジェクトである必要があります。 イベントハンドラ自体がオブジェクトであるため、thisはイベントハンドラオブジェクトになります。 そのためJavaでthisは使えません。 また昔のIEはaddEventListnerがなくattachEventを使いますが。 attachEventの場合thisはwindowでありe.currentTargetではありません。 つまり初期のIEのDOM APIはもちろんJavaでも使えますが event.srcElement(e.currentTarget相当)しか実装されてないということです。 thisがe.currentTargetなのはJavaScriptのために作られた仕様です。 http://mevius.5ch.net/test/read.cgi/tech/1449440793/612
613: デフォルトの名無しさん [sage] 2020/07/23(木) 22:44:12.81 ID:k24nyzXR >>606 > JavaScriptにおいてはe.targetを全面的に使うのが正しい。 いいえ。e.targetは廃止されてます。 https://developer.mozilla.org/ja/docs/Web/API/Event/target わざと正反対のことを書いてるんですかね? http://mevius.5ch.net/test/read.cgi/tech/1449440793/613
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.044s