箭頭函式中的this指向問題小記

2021-09-13 17:16:45 字數 454 閱讀 4258

普通函式中的this:

1. this總是代表它的直接呼叫者(js的this是執行上下文), 例如 obj.func ,那麼func中的this就是obj

2.在預設情況(非嚴格模式下,未使用 'use strict'),沒找到直接呼叫者,則this指的是 window (約定俗成)

3.在嚴格模式下,沒有直接呼叫者的函式中的this是 undefined

箭頭函式中的this

1.箭頭函式沒有自己的this, 它的this是繼承而來; 預設指向在定義它時所處的物件(宿主物件),而不是執行時的物件, 定義它的時候,可能環境是window; 箭頭函式可以方便地讓我們在 settimeout ,setinterval中方便的使用this

2.箭頭函式中,this指向的固定化,並不是因為箭頭函式內部有繫結this的機制,實際原因是箭頭函式根本沒有自己的this,導致內部的this就是外層**塊的this。

箭頭函式中的this指向問題

箭頭函式沒有自己的 this,它內部的 this 是外層 塊的 this,也就是定義箭頭函式時所在的物件。es6 標準入門裡面對箭頭函式 this 的指向有如下說法 函式體內的 this 物件就是定義時所在的物件,而不是呼叫時所在的物件。一般this 物件的指向是可變的,但是在箭頭函式中,this ...

箭頭函式this指向問題

前言 線下筆試碰到的題目,發現學習掌握的不透徹,所以回來填坑 const obj1 const obj2 console.log obj1.func.bind obj2 輸出結果為 剛開始很疑惑結果,於是做了個對比 const obj1 const obj2 console.log obj1.fun...

箭頭函式 this指向問題

1.為什麼要用箭頭函式 2.箭頭函式分析this指向 1.this指向呼叫函式的物件 function a a 2.this指向window var a 2 這裡不能換成let a 2 因為window.獲取不到a的值 var obj obj.b 總結 1.箭頭函式在定義的時候生效 而普通函式則在呼...