首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JavaScript 事件模型差異:IE srcElement vs Firefox target 的設計哲學解析

     編輯:程式設計綜合問答

核心差異

瀏覽器屬性名語義角度
IEevent.srcElement來源——事件從哪裡發出
Firefox / W3Cevent.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
});

延伸類比

  • C# LINQ:Select (投射) vs Where (過濾)
  • Ruby:map (投射) vs select (過濾)
  • 中文「借」 vs 英文 borrow (向內) / lend (向外)

不同語言/平台對同一概念的命名,往往反映其底層設計哲學與資料流向的視角差異。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved