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

JS 中 body 標籤傳 this 實為 window 對象:正確獲取 body 方式

     編輯:程式設計綜合問答

問題代碼



function init(obj) {
    obj.bgColor = "black"; // 不生效,obj 是 window
}

原因

內聯事件處理器中 this 指向 window 對象,而非 <body> 元素。HTML 規範規定:內聯事件屬性中的 this 為全局對象。

正確獲取 body



// 或

// 或現代寫法
document.addEventListener('DOMContentLoaded', () => {
    document.body.style.backgroundColor = 'black';
});

驗證代碼








最佳實踐

  • **拒絕內聯事件屬性**(onload, onclick),改用 addEventListener 分離結構行為。
  • 現代框架(Vue/React)自動管理綁定,無此困擾。
  • 若必須用內聯,傳 document.body 或 this.document.body。

**內聯事件 this = window,永遠記住這一條。**

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