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

    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)};
    console.log(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,而非执行时。
    箭头函数不能用作构造函数,因为它没有自己的this,无法实例化;

    也是因为箭头函数没有自己的this,所以箭头函数 内也不存在arguments对象。(可以用扩展运算符代替)
    var o = {
          x : 1,
          func : function() { console.log(this.x) },
          test : function() {
              setTimeout(function() {
                  alert(this); //this指针转为全局
                  this.func();
              }, 1000);
          }
      };
      o.test();  // TypeError : this.func is not a function

    改为箭头函数

    var o = {
        x : 1,
        func : function() { console.log(this.x) },
        test : function() {
            setTimeout(() => { this.func() }, 100);
        }
    };
    o.test();    //这回this就指向o了
  • 相关阅读:
    Linux下Java安装与配置
    HYSPLIT模式简介及在线平台使用
    HYSPLIT模式简介及单机版使用图文教程
    有关气象类资料数据下载网址
    Excel图表编程应用大全(2):图表编程基础
    当装系统时遇到“选中的磁盘采用GPT分区形式”
    SQL函数
    Centos6.7 Redis3.2.8的主从搭建
    Centos 6.7 中 Redis-3.2.8的安装
    Mysql innodb_buffer_pool_size的研究
  • 原文地址:https://www.cnblogs.com/Model-Zachary/p/6150041.html
Copyright © 2011-2022 走看看