更簡潔的語法
我們先來按常規語法定義函數:
function funcName(params) { return params + 2; } funcName(2); // 4
var funcName = (params) => params + 2 funcName(2); // 4
() => { statements }
parameters => { statements }
parameters => expression // 等價于: function (parameters){ return expression; }
var double = num => num * 2
double(2); // 4 double(3); // 6
function Counter() { this.num = 0; } var a = new Counter();
console.log(a.num); // 0
function Counter() { this.num = 0; this.timer = setInterval(function add() { this.num++; console.log(this.num); }, 1000); }
var b = new Counter(); // NaN // NaN // NaN // ..
clearInterval(b.timer);
function Counter() { this.num = 0; this.timer = setInterval(function add() { console.log(this); }, 1000); } var b = new Counter();
clearInterval(b.timer);
function Counter() { this.num = 0; this.timer = setInterval(() => { this.num++; console.log(this.num); }, 1000); } var b = new Counter(); // 1 // 2 // 3 // ...
function Counter() { var that = this; this.timer = setInterval(() => { console.log(this === that); }, 1000); } var b = new Counter(); // true // true // ...
clearInterval(b.timer);
箭頭函數寫代碼擁有更加簡潔的語法;
不會綁定this。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com