徹底弄清普通函式this指向和箭頭函式this指向

2021-09-26 21:54:30 字數 582 閱讀 8522

箭頭函式的this指向可以一句話概括,箭頭函式的this指向箭頭函式的命名空間(命名空間的this指向哪就指向哪,命名空間就兩個地方乙個window乙個就是函式體)

看下面幾個列題就完全明白了

var x = 11;

var obj = ,

say2: () => ,

say3: function ()

console.log(this.x)

say4()

}} }

obj.methods.say();//33

obj.methods.say2();//11

obj.methods.say3();//33

var b=obj.methods.say3()//33

var a = obj.methods.say3//函式賦值給a上下文改變

a()//this指向全域性所以箭頭函式命名空間為window

列題二

var obj1=);

} f(); }}

obj1.fn();

箭頭函式和普通函式的this指向

對於this的指向問題還是有點不太清除,這裡做一下整理,方便以後檢視 普通函式的this 1.普通函式的this指向的是它的呼叫者,誰呼叫這個this,this就指向誰,比如obj,fn,這裡fn最外層的this就指向obj 2.如果沒有呼叫者,那這個this就指向window 3.在嚴格模式下 設...

關於普通函式this指向

this的指向在函式定義的時候是確定不了的,只有函式執行的時候才能確定this到底指向誰,實際上this的最終指向的是那個呼叫它的物件 這句話不那麼嚴謹,作為一般情況下是可以的 section1 如果乙個函式中有this,但是它沒有被上一級的物件所呼叫,那麼this指向的就是window,這裡需要說...

普通函式和箭頭函式中的this指向

普通函式的this指向window function a a windowdom元素繫結事件時的this,控制代碼裡的 this 值是該元素的引用 document.onclick function thissetinterval和settimeout中傳入函式時,函式中的this會指向window...