• es6 箭头函数


    箭头函数是使用=>语法的函数简写形式

    var array = [1, 2, 3];
    
    //传统写法
    
    array.forEach(function(v, i, a) {
    
        document.write(v);
    
    });
    
     
    
    //ES6
    
    array.forEach(v => document.write(v));
    
    它们同时支持表达式体和语句体。与(普通的)函数所不同的是,箭头函数和其上下文中的代码共享同一个具有词法作用域的this。
    
    var evens = [1,2,3,4,5];
    
    var fives = [];
    
     
    
    // 表达式体
    
    var odds = evens.map(v => v + 1);
    
    var nums = evens.map((v, i) => v + i);
    
    var pairs = evens.map(v => ({even: v, odd: v + 1}));
    
     
    
    // 语句体
    
    nums.forEach(v => {
    
      if (v % 5 === 0)
    
        fives.push(v);
    
    });
    
    document.write(fives);
    
     
    
    // 具有词法作用域的 this
    
    var bob = {
    
      _name: "Bob",
    
      _friends: ["Amy", "Bob", "Cinne", "Dylan", "Ellen"],
    
      printFriends() {
    
        this._friends.forEach(f =>
    
          document.write(this._name + " knows " + f));
    
      }
    
    }
    
    bob.printFriends();

    箭头函数有几个使用注意点。

    • 函数体内的this对象,绑定定义时所在的对象,而不是使用时所在的对象。
    • 不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。
    • 不可以使用arguments对象,该对象在函数体内不存在。

    第一点尤其值得注意。this对象的指向是可变的,但是在箭头函数中,它是固定的。

  • 相关阅读:
    [PTA练习] 愿天下有情人都是失散多年的兄妹(25分)
    sql server远程连接非1433端口
    java把double转化为long型
    StringUtils工具类
    JfreeChart折线图
    Log4j配置
    Ibatis,Spring整合(注解方式注入)
    Spring中的autowire属性(转)
    MyBatis3入门样例
    struts2 ibatis Spring系统架构图
  • 原文地址:https://www.cnblogs.com/wangdan0915/p/7799341.html
Copyright © 2020-2023  润新知