最近被問到了一個問題:
javaScript 中的箭頭函數(shù) ( => ) 和普通函數(shù) ( function ) 有什么區(qū)別?
我當時想的就是:這個問題很簡單啊~(flag),然后做出了錯誤的回答……
箭頭函數(shù)中的 this 和調(diào)用時的上下文無關(guān),而是取決于定義時的上下文
這并不是很正確的答案……雖然也不是完全錯誤
箭頭函數(shù)中的 this
首先說我的回答中沒有錯誤的部分:箭頭函數(shù)中的 this 確實和調(diào)用時的上下文無關(guān)
function make () { return ()=>{ console.log(this); }}const testFunc = make.call({ name:'foo' });testFunc(); //=> { name:'foo' }testFunc.call({ name:'bar' }); //=> { name:'foo' }
這個例