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 相关文章推荐
JavaScript 学习点滴记录
Apr 24 Javascript
可简单避免的三个JS发布错误的详细介绍
Aug 02 Javascript
JQuery调用WebServices的方法和4个实例
May 06 Javascript
JS命令模式例子之菜单程序
Oct 10 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
Apr 13 Javascript
关于Vue.nextTick()的正确使用方法浅析
Aug 25 Javascript
微信小程序实现横向增长表格的方法
Jul 24 Javascript
微信小程序使用template标签实现五星评分功能
Nov 03 Javascript
详解vue 在移动端体验上的优化解决方案
May 20 Javascript
小程序实现图片移动缩放效果
May 26 Javascript
JavaScript实现像雪花一样的Hexaflake分形
Jul 07 Javascript
手写Vue2.0 数据劫持的示例
Mar 04 Vue.js
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
PHP性能优化工具篇Benchmark类调试执行时间
2011/12/06 PHP
php字符串操作针对负值的判断分析
2016/07/28 PHP
在你的网页中嵌入外部网页的方法
2007/04/02 Javascript
js动态往表格的td中添加图片并注册事件
2014/06/12 Javascript
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
2015/01/01 NodeJs
jquery 插件实现多行文本框[textarea]自动高度
2015/03/04 Javascript
Javascript递归打印Document层次关系实例分析
2015/05/15 Javascript
JavaScript实现标题栏文字轮播效果代码
2015/10/24 Javascript
Jquery 效果使用详解
2015/11/23 Javascript
JS如何判断json是否为空
2016/07/06 Javascript
gulp-uglify 与gulp.watch()配合使用时报错(重复压缩问题)
2016/08/24 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
2016/12/23 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
jQuery实现导航栏头部菜单项点击后变换颜色的方法
2017/07/19 jQuery
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
JavaScript ES6常用基础知识总结
2019/02/09 Javascript
Layui table field初始化加载时进行隐藏的方法
2019/09/19 Javascript
在Vue中使用Viser说明(基于AntV-G2可视化引擎)
2020/10/28 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
[57:22]完美世界DOTA2联赛PWL S2 FTD vs PXG 第二场 11.27
2020/12/01 DOTA
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
python测试mysql写入性能完整实例
2018/01/18 Python
python实现Windows电脑定时关机
2018/06/20 Python
Python爬虫爬取杭州24时温度并展示操作示例
2020/03/27 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
H&M美国官网:欧洲最大的服饰零售商
2016/09/07 全球购物
Java平台和其他软件平台有什么不同
2015/06/05 面试题
小学体育教学反思
2014/01/31 职场文书
经典商业广告词
2014/03/13 职场文书
关于孝道的演讲稿
2014/05/21 职场文书
超越自我演讲稿
2014/05/21 职场文书
教师自我剖析材料(四风问题)
2014/09/30 职场文书
安全生产标语口号
2015/12/26 职场文书