| 瀏覽器 | 屬性名 | 語義角度 |
|---|---|---|
| IE | event.srcElement | 來源——事件從哪裡發出 |
| Firefox / W3C | event.target | 目標——事件要送達哪裡 |
「一個是從發送者的角度看,一個是從接收者的角度看。」——最佳回答精準總結。
事件流向:捕獲階段 → 目標階段 → 冒泡階段。
srcElement 強調事件源頭;target 強調事件最終要處理的對象。在冒泡階段,currentTarget 指向當前監聽器所在元素,而 target 永遠指向原始觸發元素。
function getTarget(e) {
e = e || window.event;
return e.target || e.srcElement;
}
// 現代標準:直接使用 e.target(IE9+ 全支援)
element.addEventListener('click', function(e) {
console.log(e.target.tagName); // 統一使用 target
});
Select (投射) vs Where (過濾)map (投射) vs select (過濾)borrow (向內) / lend (向外)不同語言/平台對同一概念的命名,往往反映其底層設計哲學與資料流向的視角差異。