前端this使用總結
1.全域性環境下:this始終指向window
2.函式直接使用時,
2.1 嚴格模式下:this為undefined
2.2 非嚴格模式:this為全域性window
3.物件中使用時,
3.1 物件內部方法的this指向呼叫此方法的物件本身
3.2 多層巢狀物件,內部方法的this指向最近的呼叫物件
3.3 原型鏈中的this,也指向呼叫它的物件
4.建構函式中的this
4.1 如返回值不是物件,則this指向建立的物件本身
4.2 如人為指定返回為物件,則this指向該物件
4.3 call&apply時,this繫結到第一個引數上
4.4 bind時則函式中的this永遠繫結在第一個引數上,不會更改
5.DOM中的this
5.1 事件處理函式中的this指向觸發該事件的元素本身
5.2 內聯事件
5.2.1 程式碼被內聯處理函式呼叫,this指向DOM元素
5.2.2 程式碼在函式內部執行,this等同於函式直接呼叫,此時非嚴格模式下指向window,嚴格模式下為undefined
6.setTimeout && setInterval 時函式中的this指向window,可通過bind改變內部的this指向
7.箭頭函式中的this
箭頭函式不繫結this,會捕獲上下文的this,故call() / apply() / bind()對於箭頭函式只作引數傳入,並不會更改指向
*** 物件中,若某一屬性值為箭頭函式,執行此屬性方法時,this指向全域性window;若屬性值為普通函式,執行此屬性方法,this指向呼叫它的物件
相關文章
- FabricJS 前端繪相簿使用總結(一)JS前端
- 前端總結前端
- 大前端效能總結前端
- 前端樣式總結前端
- 一年前端使用 react 系列 總結前端React
- 使用Jenkins部署微前端方案實踐總結Jenkins前端
- 2018前端面試總結前端面試
- 前端跨域方法總結前端跨域
- 前端面試題(總結)前端面試題
- 前端效能優化總結前端優化
- 前端資料操作總結前端
- 前端設計模式總結前端設計模式
- 前端面試題總結前端面試題
- 2019前端面試總結前端面試
- 前端知識點總結——Vue前端Vue
- 移動前端知識總結前端
- 前端秋招面試總結前端面試
- 前端配置本地代理方法總結前端
- 前端跨域問題總結前端跨域
- 前端iPhone X適配總結前端iPhone
- 前端知識點總結——HTML前端HTML
- 前端知識點總結——DOM前端
- 前端面試題及其總結前端面試題
- 前端React面試題總結前端React面試題
- 前端基礎 — Web事件總結前端Web事件
- 前端樹形Tree資料結構使用-🤸🏻♂️各種姿勢總結前端資料結構
- templatejs使用總結JS
- VideoJs使用總結IDEJS
- VUE 使用總結Vue
- Audio使用總結
- HelloCharts 使用總結
- Git 使用總結Git
- ProgressDialog使用總結
- swagger使用總結Swagger
- npm使用總結NPM
- Supervisor 使用總結
- IDEA使用總結Idea
- SVN使用總結