ES6箭头函数的使用

news/2024/9/28 9:33:08

使用箭头函数的目的:引入箭头函数目的是更加更加简短的函数写法并且不绑定this,箭头函数的语法比函数表达式更加简洁

使用场景:箭头函数更加适用于哪些本来需要匿名函数的地方

  •  定义语法:
const fn = () => {}
  • 使用方式一:括号里面加形参
 // 箭头函数const fn = (x) => {console.log(x);}fn(1)
  •  使用方式二:如果只有一个形参,那么括号可以省略
const fn1 = x => {console.log(x);
}fn1(88)
  • 使用方式三:只有一行代码的时候,我们可以省略大括号
const fn2 = x => x+x;
console.log(fn2(9))
  • 使用方式四:箭头函数直接返回一个对象
const fn3 = (uname) => ({name:uname
})
console.log(fn3('成龙'));

  注意:返回一个对象需要用需要用括号将{}包起来。

  • 应用一:利用剩余变量传参的方式进行箭头函数求和
    // 箭头函数的参数:// 利用箭头函数求和,我们并不知道参数几个,所以用剩余参数的写法,它将所有的参数变成一个数组const getSum = (...arr) => {console.log('剩余参数的值为', arr);let sum = 0;for (let i=0; i< arr.length; i++) {sum +=arr[i]}return sum;}console.log(getSum(2, 3)); console.log(getSum(2, 3, 4)); 

  •  箭头函数this的用法:箭头函数不会创建自己的this,他只会从自己的作用域链的上一层沿用this。

例:

//箭头函数内部this  是上一层this的指向,所以这个this输出的是windowconst fn4 = () => {console.log(this);}fn4()

 对象方法箭头函数this

    // 对象方法箭头函数this  对象没有作用域,所以对象中的箭头方法指向的还是windowconst obj = {name:"yansunda",sayHi: () => {console.log(22);console.log(this);}}obj.sayHi();

对象方法的函数里面再写箭头函数的this
    // 对象方法的函数里面再写箭头函数的this//只有函数里面才有this,然后箭头函数里面的this指的是上一层的this,所以sayHi的调用者是obj1,所以this指向obj1const obj1 = {name:'yansunda',sayHi:function(){console.log(this);let fn = () => {console.log(333);console.log(this);///箭头函数指的是sayHi中的this,而sayHi的调用者是obj1,所以this指向obj1console.log(this.name);}fn()}}obj1.sayHi()

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/65677.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

方法引用

方法引用 方法: 就是以前学过的方法. 引用: 就是把已有的方法拿过来用. 如何用: 当做函数式接口抽象方法的方法体. 总结: 方法引用就是把已经有的方法拿过来用, 当做函数式接口中抽象方法的方法体. 方法引用的条件:引用处必须是函数式接口.被引用的方法必须是已经存在的.被引用…

一次搞定30天账单,花了十分钟记账

一次搞定30天账单,花了十分钟记账 丑话在前:早出晚归忙奔波,挣钱如针挑土,花钱如水冲沙。挣一毛花十分,一分一厘不容易,开源节流铁公鸡。本教程适用于有复式记账基础的个人,由企业财务系统精简编制的模板,苹果设备 iphone\macbook 请使用 numbers 应用,或使用网页登录…

15 json常见操作与案例 序列化 反序列化

json:本质是一个特定结构的字符串 意义 :打通不同编程语言之间进行相互通信 时的数据格式问题。序列化(python数据类型 转换成 JSON格式化字符串)# python数据类型 转换成 JSON格式化字符串 序列化 import json # python数据类型 info = {"code": 1000, &quo…

16 JSON 爬虫【反序列化】豆瓣

# 没有安装 requests模块 ,需要安装此模块 pip3 install requests import json import requestsres=requests.get(url=https://movie.douban.com/j/search_subjects?type=tv&tag=%E7%83%AD%E9%97%A8&page_limit=50&page_start=0,headers={User-Agent:Mozilla/5.…

19 导入模块成员冲突 总结

成员和冲突 #如果导入的方法存在冲突时,进行取别名 import db as d1 from utils.db import db as d2 #也支持下面的方法导入 from utils.db import x1,x3,x3 from utils.db import * #此方式不推荐 def run():d1.f1()d1.f2()d2.xxx() if __name__ == "__main__":run…

一站式解决方案:10款PM工程项目管理软件深度解析

市面上主流的 10 款PM工程项目管理系统推荐:PingCode、Worktile、飞书、金和项目管理、致远协同办公、Asana、Trello、JIRA、Basecamp、Monday.com。在现代企业管理中,项目的复杂性常常让人感到无从应对,错失进度和预算控制的情况屡见不鲜。选择合适的PM工程项目管理系统,不…

09 模块导入规则 寻找模块 常见问题

模块导入规则 在python内部导入模块时,必须要遵循他的规则,必须去指定的目录中找py文件。 寻找模块一般就三个位置优先在当前运行脚本的同级目录 【一般问题比较多】python的安装目录 【内置模块】python的安装目录+site-packages 【第三方模块】…

WiFi基础(五):802.11帧结构与WiFi控制帧、管理帧、数据帧

802.11 无线 WiFi 有 数据帧,管理帧、控制帧 三种类型帧。这些帧由 9 个部分组成:Frame Control,Duration ID,Address1,Address2,Address3,Seq-ctl,Address4,Frame Body,FCS。需要注意的是,有些组成部分在有些帧里并不是必须的。liwen01 2024.09.22 前言 前面介绍了…