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 相关文章推荐
点图片上一页下一页翻页效果
Jul 09 Javascript
基于mootools 1.3框架下的图片滑动效果代码
Apr 22 Javascript
不同的jQuery API来处理不同的浏览器事件
Dec 09 Javascript
JS批量操作CSS属性详细解析
Dec 16 Javascript
js实现DOM走马灯特效的方法
Jan 21 Javascript
创建你的第一个AngularJS应用的方法
Jun 16 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
Aug 04 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
Dec 26 Javascript
webpack写jquery插件的环境配置
Dec 21 jQuery
使用 vue 实现灭霸打响指英雄消失的效果附demo
May 06 Javascript
Vue 3.0双向绑定原理的实现方法
Oct 23 Javascript
Vue页面跳转传递参数及接收方式
Sep 09 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
肝肠寸断了解下!盘点史上最伤心的十大动漫
2020/03/04 日漫
PHP中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
PHP 中使用ajax时一些常见错误总结整理
2017/02/27 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
js之WEB开发调试利器:Firebug 下载
2007/01/13 Javascript
解析JavaScript中的标签语句
2013/06/19 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
2014/01/06 Javascript
scrollWidth,clientWidth,offsetWidth的区别
2015/01/13 Javascript
jQuery知识点整理
2015/01/30 Javascript
javascript实现带节日和农历的日历特效
2015/02/01 Javascript
深入理解JavaScript中的箭头函数
2015/07/28 Javascript
浅谈js中调用函数时加不加括号的问题
2016/07/28 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
JS中事件冒泡和事件捕获介绍
2016/12/13 Javascript
基于JS实现网页中的选项卡(两种方法)
2017/06/16 Javascript
微信小程序之swiper滑动面板用法示例
2018/12/04 Javascript
微信小程序实现多选删除列表数据功能示例
2019/01/15 Javascript
微信小程序实现圆形进度条动画
2020/11/18 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
vue利用全局导航守卫作登录后跳转到未登录前指定页面的实例代码
2020/05/19 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
python 快速排序代码
2009/11/23 Python
python使用Flask框架获取用户IP地址的方法
2015/03/21 Python
对numpy中array和asarray的区别详解
2018/04/17 Python
详解Python中的正斜杠与反斜杠
2019/08/09 Python
优秀应届生推荐信
2013/11/09 职场文书
班长岗位职责
2013/11/10 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
法院授权委托书格式
2014/09/28 职场文书
放假通知格式
2015/04/14 职场文书
董存瑞观后感
2015/06/11 职场文书
2016教师暑期培训学习心得体会
2016/01/09 职场文书
纯html+css实现奥运五环的示例代码
2021/08/02 HTML / CSS
opencv深入浅出了解机器学习和深度学习
2022/03/17 Python