前端研习录(39)——ES6 函数扩展讲解及示例分析

前端研习录(39)——ES6 函数扩展讲解及示例分析


版权声明

  • 本文原创作者:清风不渡
  • 博客地址:https://blog.csdn.net/WXKKang

  重拾前端记忆,记录学习笔记,现在进入ES6 函数扩展部分

一、函数扩展

1、定义

  ES6支持使用(=>)定义函数,示例如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>清风不渡</title>
</head>
<body>
    <script>
        //ES5
        function demo1(x,y){
            return x+y;
        }

        var demo2 = function(x,y){
            return x+y;
        }

        //ES6
        var demo3 = (x,y) => x+y;
        var demo4 = x => x;
        var demo5 = () => 10;


        console.log(demo1(1,2));
        console.log(demo2(1,2));
        console.log(demo3(1,2));
        console.log(demo4(1));
        console.log(demo5());

    </script>
</body>
</html>

  结果如下:

在这里插入图片描述

如果有只有一个参数,小括号和省略不写,没有或存在多个参数则需要小括号
如果函数的代码块存在多条语句,则需要用{ }将其包裹
如果函数返回的是一个对象,则需要用 ( ) 将其包裹

2、用途

  箭头函数可以简化匿名函数,示例如下(遍历数组):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>清风不渡</title>
</head>
<body>
    <script>
        var arr = [1,2,3];
        //ES5
        arr.map(function(item){
            console.log(item);
        })
        //es6
        arr.map(item =>{
            console.log(item);
        })

    </script>
</body>
</html>

  结果如下:

在这里插入图片描述

3、关于this指向

  对于普通函数而言,内部的this指向的是函数运行时所在的对象,但是箭头函数没有自己的this对象,内部的this指向的是上层作用域中的this,示例如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>清风不渡</title>
</head>
<body>
    <script>
        var name = "Tom";
        
        var user1 = {
            name : "Jerry",
            getName() {
                setTimeout(
                    function(){
                        console.log(this.name);
                    }
                )
            }
        }

        var user2 = {
            name : "Jerry",
            getName (){
                setTimeout(
                    ()=>{
                        console.log(this.name);
                    }
                )
            }
        }

        user1.getName();
        user2.getName();
    </script>
</body>
</html>

  示例如下:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值