1.箭頭函數與function定義函數的寫法:
//function function fn(a, b){ return a + b; } //arrow function var foo = (a, b)=>{ return a + b };
2.this的指向:使用function定義的函數,this的指向隨着調用環境的變化而變化,而箭頭函數中的this指向是固定不變的,一直指向定義函數的環境。
//使用function定義的函數 function foo(){ console.log(this); } var obj = { aa: foo }; foo(); //Window obj.aa() //obj { aa: foo }
//使用箭頭函數定義函數 var foo = () => { console.log(this) }; var obj = { aa:foo }; foo(); //Window obj.aa(); //Window
3.變量提升
由於js的內存機制,function的級別最高,而用箭頭函數定義函數的時候,需要var(let const定義的時候更不必說)關鍵詞,而var所定義的變量不能得到變量提升,故箭頭函數一定要定義於調用之前
本文轉載:https://blog.csdn.net/github_38851471/article/details/79446722