ES6之箭頭表達式


  ES2015新增的特性箭頭表達式,省去了關鍵詞function,文中``雙撇號和${}是Typescript的語法。以下是一些學習筆記:

 1.單行箭頭表達式:

1 var foo = (arg1,arg2) => arg1 + arg2;
2 //上述表達式相當於
3 var foo = function (arg1, arg2) { return arg1 + arg2; };

 2.多行箭頭表達式(必須使用{}大括號):

1 var foo = (arg1, agr2) => {
2     return arg1 + agr2;
3 }
4 
5 //以上表達式相當於
6 var foo = function (arg1, arg2) {
7     return arg1 + arg2;
8 };

  3.無參數:

1 var foo = () => {}
2 
3 //以上表達式相當於
4 var foo = function () {}

  4.一個參數(無需使用()小括號):

1 var foo = arg => {
2   return arg*arg;    
3 }
4 
5 //以上表達式相當於
6 var foo = function (arg) {
7    return arg*arg;  
8 }

  5.栗子:

1 var arr = [1,2,3,4,5];
2 console.log(arr.filter(value => value%2 == 0))
3 
4 //以上代碼相當於
5 var arr = [1, 2, 3, 4, 5];
6 console.log(arr.filter(function (value) { return value % 2 == 0; }));  //[2,4]返回被2整除的值

  6.箭頭表達式中的this關鍵字:

  //(1)ES5方式(計時器中無法找到this)
1 function Foo (name:string) {
2     this.name = name;
3     setInterval(function () {
4         console.log(`name is: ${this.name}`);
5     },1000);
6 }
7 var foo = new Foo('莎士比亞');  
8 //返回name is---無法找到this.name
 
//(2)ES6方式(計時器中可以找到this)
1 function Foo (name:string) {
2     this.name = name;
3     setInterval(() => {
4         console.log(`name is: ${this.name}`);
5     },1000);
6 }
7 var foo = new Foo("莎士比亞");
8
9 //name is: 莎士比亞

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM