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 相关文章推荐
25个优雅的jQuery Tooltip插件推荐
May 25 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
Mar 16 Javascript
JavaScript之AOP编程实例
Jul 17 Javascript
jquery实现清新实用的网页菜单效果
Aug 28 Javascript
跟我学习javascript的闭包
Nov 16 Javascript
移动端使用localStorage缓存Js和css文的方法(web开发)
Sep 20 Javascript
JavaScript面试题大全(推荐)
Sep 22 Javascript
js中如何完美的解析数据
Mar 18 Javascript
Node.js安装详细步骤教程(Windows版)详解
Sep 01 Javascript
Vuejs通过拖动改变元素宽度实现自适应
Sep 02 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
Nov 18 jQuery
echarts饼图各个板块之间的空隙如何实现
Dec 01 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
数字转英文
2006/12/06 PHP
php+mysql事务rollback&commit示例
2010/02/08 PHP
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
2010/02/16 PHP
php文本转图片自动换行的方法
2013/03/13 PHP
PHP闭包(Closure)使用详解
2013/05/02 PHP
PHP入门教程之表单与验证实例详解
2016/09/11 PHP
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
json的定义、标准格式及json字符串检验
2014/05/11 Javascript
JavaScript中Date.toSource()方法的使用教程
2015/06/12 Javascript
jquery对象和DOM对象的相互转换详解
2016/10/18 Javascript
常用的javascript设计模式
2017/01/11 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
2017/09/28 Javascript
浅谈node模块与npm包管理工具
2018/01/03 Javascript
微信小程序实现折叠展开效果
2018/07/19 Javascript
在Vue-cli里应用Vuex的state和mutations方法
2018/09/16 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
详解nginx配置vue h5 history去除#号
2020/11/09 Javascript
[02:12]探秘2016国际邀请赛中国区预选赛选手房间
2016/06/25 DOTA
Python中的自定义函数学习笔记
2014/09/23 Python
Python简单日志处理类分享
2015/02/14 Python
详解Python的Django框架中的通用视图
2015/05/04 Python
Python 寻找局部最高点的实现
2019/12/05 Python
升级keras解决load_weights()中的未定义skip_mismatch关键字问题
2020/06/12 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
2020/11/26 Python
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
C语言中一个结构不能包含指向自己的指针吗
2012/05/25 面试题
内部类的定义、种类以及优点
2013/10/16 面试题
前台接待的工作职责
2013/11/21 职场文书
给校长的建议书300字
2014/05/16 职场文书
2014年高二班主任工作总结
2014/12/16 职场文书
刑事附带民事起诉状
2015/05/19 职场文书
家长对孩子的寒假评语
2015/10/09 职场文书
《角的初步认识》教学反思
2016/02/17 职场文书
《我的长生果》教学反思
2016/02/20 职场文书