zoukankan      html  css  js  c++  java
  • ES6参考---箭头函数

    ES6参考---箭头函数

    一、总结

    一句话总结:

    箭头函数是fun1 = () => console.log('fun1()')的结构,主要用来定义匿名函数,做回调函数,没有自己的this

    1、箭头函数形参特点?

    1、没有参数的话参数的括号要写上
    2、有一个参数括号不用写
    3、有多个参数括号也要写上

    2、箭头函数 函数体的特点?

    1、只有一个语句,return和大括号都可以省掉
    2、有多个语句,都不能省

    3、箭头函数的作用?

    箭头函数用来定义匿名函数和回调函数

    4、箭头函数this特点?

    a、箭头函数没有自己的this,箭头函数的this不是调用的时候决定的,而是在定义的时候处在的对象就是它的this
    b、箭头函数的this看外层的是否有函数,如果有,外层函数的this就是内部箭头函数的this,如果没有,则this是window。

    二、箭头函数

    博客对应课程的视频位置:

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4   <meta charset="UTF-8">
     5   <title>06_箭头函数</title>
     6 
     7 </head>
     8 <body>
     9     <button id="btn">测试箭头函数this_1</button>
    10     <button id="btn2">测试箭头函数this_2</button>
    11 
    12 
    13 <!--
    14 * 作用: 定义匿名函数
    15 * 基本语法:
    16   * 没有参数: () => console.log('xxxx')
    17   * 一个参数: i => i+2
    18   * 大于一个参数: (i,j) => i+j
    19   * 函数体不用大括号: 默认返回结果
    20   * 函数体如果有多个语句, 需要用{}包围,若有需要返回的内容,需要手动返回
    21 * 使用场景: 多用来定义回调函数
    22 
    23 * 箭头函数的特点:
    24     1、简洁
    25     2、箭头函数没有自己的this,箭头函数的this不是调用的时候决定的,而是在定义的时候处在的对象就是它的this
    26    3、扩展理解: 箭头函数的this看外层的是否有函数,
    27         如果有,外层函数的this就是内部箭头函数的this,
    28         如果没有,则this是window。
    29 -->
    30 <script type="text/javascript">
    31   let fun = function () {
    32        console.log('fun()');
    33    };
    34    fun();
    35    //没有形参,并且函数体只有一条语句
    36    let fun1 = () => console.log('fun1()');
    37     fun1();
    38    console.log(fun1());
    39     //一个形参,并且函数体只有一条语句
    40     let fun2 = x => x;
    41     console.log(fun2(5));
    42     //形参是一个以上
    43     let fun3 = (x, y) => x + y;
    44     console.log(fun3(25, 39));//64
    45 
    46     //函数体有多条语句
    47     let fun4 = (x, y) => {
    48         console.log(x, y);
    49         return x + y;
    50     };
    51     console.log(fun4(34, 48));//82
    52 
    53     setTimeout(() => {
    54         console.log(this);
    55     },1000)
    56 
    57    let btn = document.getElementById('btn');
    58    //没有箭头函数
    59    btn.onclick = function () {
    60        console.log(this);//btn
    61    };
    62    //箭头函数
    63    let btn2 = document.getElementById('btn2');
    64 
    65     let obj = {
    66         name : 'kobe',
    67         age : 39,
    68         getName : () => {
    69             btn2.onclick = () => {
    70                 console.log(this);//obj
    71             };
    72         }
    73     };
    74     obj.getName();
    75 
    76 
    77  function Person() {
    78      this.obj = {
    79          showThis : () => {
    80              console.log(this);
    81          }
    82      }
    83  }
    84     let fun5 = new Person();
    85     fun5.obj.showThis();
    86 
    87 </script>
    88 
    89 </body>
    90 </html>
     
  • 相关阅读:
    Elastic-Job分布式任务调度
    java.sql.BatchUpdateException: ORA-01861: 文字与格式字符串不匹配
    oracle锁表和解锁
    sql ibatis
    唯一索引
    斐波那契数列
    旋转数组的最小数字
    两个栈来实现一个队列
    重建二叉树
    重写和重载
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12584700.html
Copyright © 2011-2022 走看看