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中的16进制字符(改进)
Nov 21 Javascript
JQuery设置文本框和密码框得到焦点时的样式
Aug 30 Javascript
jQuery操作input值的各种方法总结
Nov 21 Javascript
Javascript和Java获取各种form表单信息的简单实例
Feb 14 Javascript
利用jquery制作滚动到指定位置触发动画
Mar 26 Javascript
JS只能输入正整数的简单实例
Oct 07 Javascript
重新理解JavaScript的六种继承方式
Mar 24 Javascript
Vue2.0 实现单选互斥的方法
Apr 13 Javascript
Vue2.0生命周期的理解
Aug 20 Javascript
node错误处理与日志记录的实现
Dec 24 Javascript
echarts多条折线图动态分层的实现方法
May 24 Javascript
JavaScript实现鼠标移入随机变换颜色
Nov 24 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
五个PHP程序员工具
2008/05/26 PHP
php和javascript之间变量的传递实现代码
2012/12/19 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
List the Stored Procedures in a SQL Server database
2007/06/20 Javascript
一些实用的jQuery代码片段收集
2011/07/12 Javascript
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
js加载读取内容及显示与隐藏div示例
2014/02/13 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
JavaScript使用cookie实现记住账号密码功能
2015/04/27 Javascript
Vue.js实现文章评论和回复评论功能
2020/05/30 Javascript
Node.js 基础教程之全局对象
2017/08/06 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
利用angular自动编译andriod APK的绕坑经历分享
2019/03/08 Javascript
Vue动态面包屑功能的实现方法
2019/07/01 Javascript
原生js基于canvas实现一个简单的前端截图工具代码实例
2019/09/10 Javascript
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
python检查序列seq是否含有aset中项的方法
2015/06/30 Python
python入门教程之识别验证码
2017/03/04 Python
Python实现多属性排序的方法
2018/12/05 Python
python 获得任意路径下的文件及其根目录的方法
2019/02/16 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
2019/04/10 Python
Python多线程获取返回值代码实例
2020/02/17 Python
Python pandas 列转行操作详解(类似hive中explode方法)
2020/05/18 Python
Python基础教程(一)——Windows搭建开发Python开发环境
2020/07/20 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
用python读取xlsx文件
2020/12/17 Python
python实现发送QQ邮件(可加附件)
2020/12/23 Python
HTML5为输入框添加语音输入功能的实现方法
2017/02/06 HTML / CSS
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
Skechers越南官方网站:来自美国的运动休闲品牌
2021/02/22 全球购物
一套英文Java笔试题面试题
2016/04/21 面试题
财务人员求职自荐书范文
2014/02/10 职场文书
SpringBoot系列之MongoDB Aggregations用法详解
2022/02/12 MongoDB
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记