1. 程式人生 > >風雨砥礪,歲月如歌——Ts之箭頭函式

風雨砥礪,歲月如歌——Ts之箭頭函式

小編最近接觸到了箭頭函式(Arrow Functions),誠然,我覺得它真的是一個絕妙的設計,所以來淺談一下我的理由:

首先,它非常簡潔:如果我用箭頭函式寫一個函式:

var sum = (arg1, arg2) => arg1 + arg2;

同樣的,如果用js來寫:

var sum = function (arg1, arg2) { return arg1 + arg2; };

是不是覺得好像省了不少力呢。

再來一個:

var myarray = [1, 2, 3, 4, 5];
console.log(myarray.filter(value => value % 2 == 0));

現在用js來寫它:

var myarray = [1, 2, 3, 4, 5];
console.log(myarray.filter(function (value) { return value % 2 == 0; }));

當然,我覺得最重要的還是用箭頭函式能非常的明確,不會出現莫名其妙的錯誤:

舉個栗子:

這是一段獲取股票價格的程式碼:

function getStock(name: string) {
	this.name = name;
	setInterval(function () {
		console.log("name is:"+this.name)
	},1000)
}

var stock = new getStock("IBM");

但是你執行起來會痛苦的發現,控制檯啥都沒有:

如果你用箭頭函式來寫它,那就不會出錯啦:

function getStock(name: string) {
	this.name = name;
	setInterval(()=> {
		console.log("name is:"+this.name)
	},1000)
}

var stock = new getStock("IBM");

控制檯資料:

感謝閱讀!