js中this指向有幾種情況
在JavaScript中呼叫函式使用的過程中,this關鍵詞會根據函式的呼叫形式不同,引用上下文的物件也是不同的,也就是說this關鍵詞指向的物件是可以改變的。本文整理了this關鍵詞五種情況下,指向物件的不同。
情況一:全域性作用域或者普通函式自執行中this指向全域性物件window
console.log(this.document === document); //true console.log(this === window); //true this.a = 37; // 相當於建立了一個全域性變數 a console.log(window.a); //37
情況二:事件函式內部的this指向事件源
function f1(){ return this; } //在瀏覽器中: f1() === window; //在瀏覽器中,全域性物件是window //在Node中: f1() === global;
注意:事件函式中如果包含普通函式,普通函式自執行後,內部this還是指向window。
情況三:物件方法呼叫時,this指向呼叫的物件
let obj = { attr1: 3, func1: function() { console.log(this === obj) // 輸出:true console.log(this.attr1) // 輸出:3 } } obj.func1()
情況四:當一個函式被call或者apply呼叫時,this指向傳入的物件的值
let obj = { fn: function(){ console.log(this); } } obj.fn(); //objobj.fn.call(12); //12
情況五:箭頭函式中自身沒有this,this指向上級的this
const xiaoming = { name: '小明', say() { //this指向當前物件 console.log(this) }, wait() { setTimeout( () => { //this指向當前物件 console.log(this) }, 1000) } }
以上就是JavaScript中this指向的幾種清空,需要注意的是在各個場景中this取什麼值是在函式執行的時候確定的,不是在函式定義的時候決定的哦·更多JavaScript學習推薦:。
(推薦作業系統:win7系統、java10版,DELL G3電腦。)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2370/viewspace-2831095/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- js中bool值為false的幾種情況JSFalse
- DreamWeaver中應用CSS樣式表的幾種情況CSS
- Js中this指向JS
- Scrum 中經常遇到的幾種 Burndown Chart 燃盡圖情況Scrum
- js中的this指向JS
- JS獲取元素寬高的兩種情況JS
- 請在這幾種情況下匯入TPM管理
- 簡單介紹MySQL索引失效的幾種情況MySql索引
- 微信token驗證失敗的幾種情況
- JS中 this 到底指向誰?JS
- JS中this指向的更改JS
- eclipse 專案gradle無反應的幾種特殊情況EclipseGradle
- AWR收集緩慢、掛起的幾種常見情況分析
- 異常、堆記憶體溢位、OOM的幾種情況記憶體溢位OOM
- js中this的指向問題JS
- js函式中的this指向JS函式
- 【機制】js中的this指向JS
- NoClassDefFoundError的兩種情況Error
- js中修改this的指向方法整理JS
- JS中建立函式的幾種方式JS函式
- js 中斷迴圈的幾種方式JS
- IOS 自動化,幾種特殊情況下 UI 元素獲取的方式iOSUI
- file_put_contents失敗,返回false的幾種情況和解決方案False
- js的this指向JS
- JS this的指向JS
- 淺談 js 中的 this 指向問題JS
- JS 中的函式 this 指向總結JS函式
- 【JavaScript】聊聊js中關於this的指向JavaScriptJS
- [css佈局1]不知寬高情況下,水平垂直居中的幾種方式CSS
- 用瀏覽器測試幾種閉包占用記憶體的情況瀏覽器記憶體
- 多種情況解析深複製
- 這三種情況,ToDesk個人版有必要轉企業版
- 微服務呼叫中出現傳遞過來的物件為空的幾種情況微服務物件
- [20221130]測試訪問檢視v$session幾種情況的效能差異.txtSession
- 隨筆——js中的this指向,apply()與 call()JSAPP
- 簡單瞭解JS中的幾種遍歷JS
- 在Js中匿名函式的幾種寫法JS函式
- 使用聯合索引的一種情況索引