zoukankan      html  css  js  c++  java
  • 箭头函数

    1.单参数

    function cheng(a=3){
      return a*a;
    }
    
    let cheng = (a=3) => a*a;  // 箭头左边为参数  箭头右边为返回值
    console.log(cheng(9));

    2.多参数

    function add(a,b){
      return a+b;
    }
    
    let add = (a,b) => a+b;  // 默认返回值
    console.log(add(3,9));

    3.无返回值

    function add(a,b){
      console.log(a+b);
    }
    
    let add = (a,b) => {console.log(a+b)};   // 如果没有返回值,需要加{}
    add(3,9);

    4.多行

    function add(a,b){
      console.log(a+b);
      return a+b;
    }
    
    let add = (a,b) => {
      console.log(a+b);
      return a+b;
    }
    
    console.log(add(3,9));

    2.如果箭头表达式仅仅就是简化了函数的命名,我们为什么要改变原来的习惯而去使用它呢?

     箭头函数内部没有constructor方法,也没有prototype,所有不支持new操作。但是它对this的处理与一般的普通函数不一样,箭头函数的this始终指向函数定义时的this,而非执行时。

    var obj = {
      x:1,
      func: function(){ console.log(this.x) },  // 此处的 this 代表 obj
      test: function(){
        setTimeout(function(){
          alert(this);  // 因为使用了异步,在运行过程中,this发生了指针转移,不再指向obj,而是指向全局 Window对象
          // [object Window]
          this.func();
        },1000);
      }
    };
    
    obj.test();  // TypeError: this.func is not a function

    //--------改为箭头函数

    var obj = {
      x: 1,
      func: function(){ console.log(this.x) },
      test: function(){
        setTimeout(() => {
          alert(this); // [object Object]  此处的this指向obj
          this.func();
        },1000);
      }
    };
    
    obj.test();  // 这回this就指向obj了

    .

  • 相关阅读:
    CSS3 选择器——伪类选择器详细讲解
    关于endnote与word或wps关联的问题
    高通量测序中,reads、contigs、scaffold之间的联系
    转录组中 实验设计 的相关问题
    RNA-Seq分析软件HTSeq的安装
    bash下特殊字符的含义
    常见的测序名词解释
    RNA-seq数据分析注意事项
    RNASeq中常见的分析流程
    WGS/WES/RNAseq/CHIP-seq之间的差别
  • 原文地址:https://www.cnblogs.com/crazycode2/p/6682986.html
Copyright © 2011-2022 走看看