• 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: 莎士比亚
  • 相关阅读:
    cocostudio 使用教程
    anrdroid AVD启动不起来的问题。Waiting for HOME ('android.process.acore') to be launched
    Android SDK无法更新的问题解决办法
    Code(容斥,好题)
    莫比乌斯反演(转)
    随笔--新建查询
    11427
    uva11722
    uva11021
    How many integers can you find(容斥+dfs容斥)
  • 原文地址:https://www.cnblogs.com/hughes5135/p/6937141.html
Copyright © 2020-2023  润新知