TypeScript 箭頭函式
關於箭頭的函式的基本用法,這裡不多介紹,具體參閱箭頭函式介紹一章節。
下面再簡要介紹一下箭頭函式中this指向問題。
普通函式this的指向參閱JavaScript this一章節。
程式碼例項如下:
[JavaScript] 純文字檢視 複製程式碼let obj = { info: ["螞蟻部落", "青島市南區", 4], show: function() { console.log(this.info[1]); } } obj.show();
普通函式中,this指向呼叫此函式的物件,頂層非方法式呼叫會將this指向全域性物件(在嚴格模式下, this為undefined而不是全域性物件)。再來看一段程式碼例項:
[typescript] 純文字檢視 複製程式碼let obj = { info: ["螞蟻部落", "青島市南區", 4], show: function() { return function() { return {webName: this.info[0]}; } } } let showName=obj.show(); showName();
上面的程式碼中,this不是指向obj,而是指向window物件。
此時,TypeScript將this推斷為any型別,如果在tsconfig.json配置noImplicitThis為true,報錯如下:
如果在函式宣告的時候,就能獲取this的指向,就可以解決此問題,ES2015提供的箭頭函式則具有此功能:
[typescript] 純文字檢視 複製程式碼let obj = { info: ["螞蟻部落", "青島市南區", 4], show: function() { return () => { return {webName: this.info[0]}; } } } let showName=obj.show(); console.log(showName().webName);
箭頭函式可以捕獲它宣告時所在的上下文中this的指向。
相關文章
- 箭頭函式函式
- JavaScript 箭頭函式JavaScript函式
- JS箭頭函式JS函式
- 箭頭函式中的this函式
- 有關箭頭函式函式
- 箭頭函式詳解函式
- 箭頭函式與普通函式區別函式
- 箭頭函式this指向詳解函式
- 箭頭函式this指向的陷阱函式
- ES6箭頭函式函式
- 箭頭函式的this指向(二)函式
- 箭頭函式與普通函式的區別函式
- # 普通函式和箭頭函式的區別函式
- 從settTimeout到匿名函式、箭頭函式之() => {}函式
- 箭頭函式、簡寫函式、普通函式的區別函式
- JS中的箭頭函式與thisJS函式
- 2020-10-18 箭頭函式函式
- JavaScript(ES6)—箭頭函式JavaScript函式
- 簡述箭頭函式和普通函式的區別函式
- 箭頭函式和普通函式的10個區別函式
- 詳解箭頭函式和普通函式的區別以及箭頭函式的注意事項、不適用場景函式
- ES6 箭頭函式(arrow function)函式Function
- ES6箭頭函式總結函式
- ES6 系列之箭頭函式函式
- react裡面bind與箭頭函式React函式
- PHP 7.4 新特性之箭頭函式PHP函式
- PHP 7.4 新語法:箭頭函式PHP函式
- PHP 7.4 新特性 —— 箭頭函式 2.0PHP函式
- ES6箭頭函式的使用函式
- Day 59/100 箭頭函式和普通函式的區別函式
- 面試題:箭頭函式和普通函式的區別面試題函式
- ES6 箭頭函式下的this指向函式
- ES 6 中的箭頭函式及用法函式
- javaES6箭頭函式的全新特性Java函式
- 深入理解箭頭函式和傳統函式的區別函式
- 【ES6基礎】箭頭函式(Arrow functions)函式Function
- setTimeout和箭頭函式巢狀中的this指向函式巢狀
- ES6系列之箭頭函式全解析函式