箭頭函式中的this指向

2021-10-04 23:18:42 字數 876 閱讀 3978

let a = 

a.bar() //undefined

bar函式中的this指向父作用域,而a物件沒有作用域,因此this不是a,列印結果為undefined

function a() 

a.prototype.bar = () => console.log(this.foo)

let a = new a()

a.bar() //undefined

原型上使用箭頭函式,this指向是其父作用域,並不是物件a,因此得不到預期結果

obj1 =  // this指向window物件

}obj1.getage()

// 輸出window 物件

obj = ; // this指向obj物件

return fn(); //返回fn

}};obj.getage(); // 29

// 輸出乙個物件

//

1.function

var obj = 

}obj.getage() // 29

var obj =

return fn()

}}obj.getage() // nan

2.箭頭函式

var obj = 

}obj.getage(); // 29

var obj =

}obj.getage(); //window

作為物件的屬性時,this的指向則不再是物件本身了,箭頭函式捕獲的是obj{}這個物件的環境,然後這個環境的this指向的是window

箭頭函式中this的指向

箭頭函式中this的指向 在箭頭函式中沒有this,箭頭函式中的this是它捕獲過來的,注意 1.箭頭函式中的this一旦捕獲將無法在改變 2.箭頭函式是在它被宣告時開始捕獲的 3.什麼是宣告時呢?就是箭頭函式被呼叫時 4.捕獲的是離它最近的父級的this的指向 舉個栗子 var a 測試 let ...

箭頭函式中的this指向

箭頭函式是es6新出的一種函式格式的寫法 文件對箭頭函式的解釋 箭頭函式相當於匿名函式,並且簡化了函式定義。箭頭函式有兩種格式,一種只包含乙個表示式,連和return都省略掉了。還有一種可以包含多條語句,這時候就不能省略和return 比如我們常見的foreach方法 var arr 1 2,3 4...

箭頭函式中的this指向

箭頭函式中的this指向 如果是箭頭函式,this指向是,父級程式的,this的指向 如果父級程式是乙個函式,函式也是有this的,那麼箭頭函式的this,就是父級函式的this 如果父級程式不是函式,例如物件,陣列等,沒有this指向,箭頭函式的this指向是window頂級物件 function...