ES6中箭头函数的定义与调用方式详解


Posted in Javascript onJune 02, 2017

本文主要介绍的是关于ES6箭头函数的定义与调用方式的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:

基本用法:

ES6中允许使用“箭头”(=>)定义函数

var f = v => v;

上面代码相当于:

var f = function( v ) { 
 return v; 
}

根据箭头函数有参数和无参数来区分

1、无参数的箭头函数

var f = () => 5;

等同于

var f = function() { return 5};

2、有参数的箭头函数

var sum = ( a, b) => a + b;

等同于

var sum = function( a, b) { 
 return a +b; 
}

有的函数体内的语句大于一条的话,它的写法如下使用一个大括号将其括起来,并使用return语句返回

var sum = (a, b) => { return a+b;}

由于大括号被解释为代码块,所以如果箭头函数直接返回一个对象时,必须在对象外面加一个大括号

var getFunction = id => ({id: id, anme: "Temp"});

箭头函数也可以与变量解构结合使用:

const full = ({first, last}) => first +" "+ last;

等同于

function full(person) { 
 return person.first +" "+ person.last; 
}

使用箭头函数可以让函数表达的更加简洁

箭头函数的一个用处是简化回调函数

[1,2,3].map(function(x){ 
 return x*x; 
});

使用箭头函数的写法

[1,2,3].map(x => x*x);

另一个例子

var result = values.sort(function(a, b){ 
 return a -b; 
});

箭头函数的写法

var result = values.sort((a, b) => a-b);

使用rest参数与箭头函数结合的例子

const numbers = (...nums) => nums; 
numbers(1,2,3,4,5,6,7,8,9); //[1,2,3,4,5,6,7,8,9] 
//...nums 表示的是一个数组 
const headAndTail = ( head, ...tail) => [head, tail]; 
headAndTail(1,2,3,4,5,6,7,8,9);// [1, [2,3,4,5,6,7,8,9]]

使用箭头函数注意几点:

1、函数体内的this对象就是定义时所在的对象,而不是使用时所在对象;

2、不可以当作构造函数使用,也就是不能用new命令实例化一个对象,否则会抛出一个错误;

3、不可以使用arguments对象,该对象在函数体内不存在,如果要用的话,可以用rest参数代替;

4、不可以使用yield命令,箭头函数不能用作Generator函数;

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
IE/FireFox具备兼容性的拖动代码
Aug 13 Javascript
js面向对象设计用{}好还是function(){}好(构造函数)
Oct 23 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
Mar 14 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
Oct 29 Javascript
jQuery中parentsUntil()方法用法实例
Jan 07 Javascript
在JavaScript中操作时间之getUTCDate()方法的使用
Jun 10 Javascript
jquery实现鼠标滑过后动态图片提示效果实例
Aug 10 Javascript
jQuery插件实现静态HTML验证码校验
Nov 06 Javascript
Atitit.js的键盘按键事件捆绑and事件调度
Apr 01 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
Jul 10 Javascript
分享javascript、jquery实用代码段
Oct 20 Javascript
Ant Design Pro 下实现文件下载的实现代码
Dec 03 Javascript
Js实现京东无延迟菜单效果实例(demo)
Jun 02 #Javascript
javascript实现延时显示提示框效果
Jun 01 #Javascript
详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
Jun 01 #jQuery
vue.js 获取当前自定义属性值
Jun 01 #Javascript
VUE使用vuex解决模块间传值问题的方法
Jun 01 #Javascript
vue快捷键与基础指令详解
Jun 01 #Javascript
详解vuejs几种不同组件(页面)间传值的方式
Jun 01 #Javascript
You might like
S900/ ETON E1-XM 收音机
2021/03/02 无线电
php和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
2014/11/11 PHP
Smarty高级应用之缓存操作技巧分析
2016/05/14 PHP
javascript写的日历类(基于pj)
2010/12/28 Javascript
情人节专属 纯js脚本1k大小的3D玫瑰效果
2012/02/11 Javascript
浅析tr的隐藏和显示问题
2014/03/05 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
jQuery中layer分页器的使用
2017/03/13 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
vue快捷键与基础指令详解
2017/06/01 Javascript
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
vuedraggable+element ui实现页面控件拖拽排序效果
2020/07/29 Javascript
基于vue.js实现购物车
2020/01/15 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
JavaScript实现网页tab栏效果制作
2020/11/20 Javascript
Python实现的redis分布式锁功能示例
2018/05/29 Python
对python制作自己的数据集实例讲解
2018/12/12 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
2019/05/04 Python
django框架使用方法详解
2019/07/18 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
tensorflow 重置/清除计算图的实现
2020/01/19 Python
python的Jenkins接口调用方式
2020/05/12 Python
python-地图可视化组件folium的操作
2020/12/14 Python
Python爬虫自动化爬取b站实时弹幕实例方法
2021/01/26 Python
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
办公室副主任岗位职责
2013/11/25 职场文书
项目计划书范文
2014/01/09 职场文书
音乐兴趣小组活动总结
2014/07/07 职场文书
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
2021/06/18 MySQL
一文搞清楚MySQL count(*)、count(1)、count(col)区别
2022/03/03 MySQL
动画电影《龙珠超 超级英雄》延期上映
2022/03/20 日漫
Python软件包安装的三种常见方法
2022/07/07 Python