最近被問到了一個(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è)例