• ES6学习笔记之箭头函数


    1、什么是箭头函数

    箭头函数就是代替function()这个函数的简写

    var f = v => v;    //var f就是定义一个函数名,=v是函数f的参数,=>v就是返回v
    
    // 等同于
    var f = function (v) {
      return v;
    };


    2、使用箭头函数后,this的指向有什么变化
    在js机制里面,没有被定义的this默认指向window,箭头函数里面的this指向的是document对象,是定义时所在的对象而不是使用时所在的对象
    this指向的固定化,并不是因为箭头函数内部有绑定this的机制,实际原因是箭头函数根本没有自己的this,导致内部的this就是外层代码块的this。正是因为它没有this,所以也就不能用作构造函数。

    // ES6
    function foo() {
      setTimeout(() => {
        console.log('id:', this.id);
      }, 100);
    }
    
    // ES5
    function foo() {
      var _this = this;
    
      setTimeout(function () {
        console.log('id:', _this.id);
      }, 100);
    }

    3、箭头函数的优点

    箭头函数可以与变量解构结合使用
    const full = ({ first, last }) => first + ' ' + last;
    
    // 等同于
    function full(person) {
      return person.first + ' ' + person.last;
    }

    箭头函数使得表达更加简洁
    const isEven = n => n % 2 === 0;
    const square = n => n * n;

    简化回调函数
    // 正常函数写法
    [1,2,3].map(function (x) {
      return x * x;
    });
    
    // 箭头函数写法
    [1,2,3].map(x => x * x);
     
    需要注意的点:
    大括号被解释为代码块,如果返回的是对象,要在对象外面加上括号,否则报错。
    argumentssupernew.target这三个在箭头函数中也不存在~~~~~

    不可以使用new命令,否则会抛出一个错误

    不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用 rest 参数代替。
    不可以使用yield命令
     
     





  • 相关阅读:
    eclipse --- 新建JSP页面默认模版设置
    (转)Spring文件上传,包括一次选中多个文件
    python 一篇搞定所有的异常处理
    python 常用算法学习(2)
    python 面向对象之继承与派生
    python 面向对象的程序设计
    python 闯关之路二(模块的应用)
    python 一篇就能理解函数基础
    python 装饰器 一篇就能讲清楚
    python 练完这些,你的函数编程就ok了
  • 原文地址:https://www.cnblogs.com/hongyafang/p/12410548.html
Copyright © 2020-2023  润新知