this關鍵字是javascript中最複雜的機制之一。它是一個很特別的關鍵字,被自動定義在所有函數的作用域中。 this既不指向函數本身也不指向函數的語法作用域。 this是在函數被調用時發生的綁定,this的綁定和函數聲明的位置沒有任何關係,它指向什麼完全取決於函數在哪裏被調用。 調用位置:是函數在代碼中被調用的位置,而不是聲明的位置。 this的4條綁定規則 * 默認綁定 *
箭頭函數: 包圍參數列表的小括號() 無參(一定要寫括號):() = {...} 1個參數(括號可省略):x = {...} 多個參數(一定要寫括號):(x, y) = {} 包圍函數體的大括號{} 如果只有返回語句,可以省略{}和return關鍵字,直接寫返回值。 但如果返回值是object類型,應該用()包圍對象。
this指向是工作和麪試中經常會遇到的問題。 根據個人理解,簡單從3個方面來總結一下this的指向問題。 1. this指向的結論 1. 若是全局函數,並且沒有直接調用它的對象,沒有嚴格模式,則默認指向全局 window或global 2. 若是全局函數,並且沒有直接調用的對象,嚴格模式下,this指向undefined 3. 箭頭函數的this,是在函數定義時根據上下文函數決定的
更多文章詳見公眾號【前端css和js乾貨】 在 JavaScript 中,this是函數的調用上下文。 難度在於this具有複雜的行為。 本文,整理了一個關於this關鍵字的7個有趣面試問題的列表。 注意:下面的 JavaScript 片段在非嚴格模式下運行,也稱為 sloppy 模式。 1: 變量 vs 屬性 以下代碼會在控制枱打印什麼: const object = { m