最近被問到了一個(gè)問題:

javaScript 中的箭頭函數(shù) ( => ) 和普通函數(shù) ( function ) 有什么區(qū)別?

我當(dāng)時(shí)想的就是:這個(gè)問題很簡單啊~(flag),然后做出了錯(cuò)誤的回答……

箭頭函數(shù)中的 this 和調(diào)用時(shí)的上下文無關(guān),而是取決于定義時(shí)的上下文

這并不是很正確的答案……雖然也不是完全錯(cuò)誤

箭頭函數(shù)中的 this

首先說我的回答中沒有錯(cuò)誤的部分:箭頭函數(shù)中的 this 確實(shí)和調(diào)用時(shí)的上下文無關(guān)

function make () {
    return ()=>{
        console.log(this);
    }}const testFunc = make.call({ name:'foo' });testFunc(); //=> { name:'foo' }testFunc.call({ name:'bar' }); //=> { name:'foo' }

這個(gè)例

網(wǎng)友評論