zoukankan      html  css  js  c++  java
  • 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命令
     
     





  • 相关阅读:
    路飞学城Python-Day23
    JS中异常处理的理解
    JS获取浏览器中的各种宽高值
    浏览器兼容性处理大全
    js中点击事件方法三种方式的区别
    js 中继承的几种方式
    理解JS的6种继承方式
    理解javascript中的事件模型
    Javascript 原型链之原型对象、实例和构造函数三者之间的关系
    对于js原型和原型链继承的简单理解
  • 原文地址:https://www.cnblogs.com/hongyafang/p/12410548.html
Copyright © 2011-2022 走看看