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 相关文章推荐
node.js开机自启动脚本文件
Dec 24 Javascript
Bootstrap创建可折叠的组件
Feb 23 Javascript
JS实现支持Ajax验证的表单插件
Mar 24 Javascript
jQuery实现选项联动轮播效果【附实例】
Apr 19 Javascript
Javascript之Number对象介绍
Jun 07 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
Oct 27 Javascript
BootStrap 实现各种样式的进度条效果
Dec 07 Javascript
Vue.js实现分页查询功能
Nov 15 Javascript
详解如何在你的Vue项目配置vux
Jun 04 Javascript
基于Webpack4和React hooks搭建项目的方法
Feb 05 Javascript
vue指令做滚动加载和监听等
May 26 Javascript
javascript实现下拉菜单效果
Feb 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
PHP 数组排序方法总结 推荐收藏
2010/06/30 PHP
php利用单例模式实现日志处理类库
2014/02/10 PHP
PHP简单实现断点续传下载的方法
2015/09/25 PHP
PHP中如何判断exec函数执行成功?
2016/08/04 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
JavaScript定时器详解及实例
2013/08/01 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
JS HTML图片显示Canvas 压缩功能
2017/07/21 Javascript
解决Angular2 router.navigate刷新页面的问题
2018/08/31 Javascript
Vue核心概念Action的总结
2019/01/18 Javascript
详解几十行代码实现一个vue的状态管理
2019/01/28 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
2019/09/10 Javascript
js实现随机圆与矩形功能
2020/10/29 Javascript
浅谈Python数据类型判断及列表脚本操作
2016/11/04 Python
JS设计模式之责任链模式实例详解
2018/02/03 Python
python文本数据相似度的度量
2018/03/12 Python
python+splinter自动刷新抢票功能
2018/09/25 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
2018/11/14 Python
Django框架 querySet功能解析
2019/09/04 Python
python实现滑雪游戏
2020/02/22 Python
python实现在线翻译功能
2020/03/03 Python
python中JWT用户认证的实现
2020/05/18 Python
python em算法的实现
2020/10/03 Python
Django如何实现防止XSS攻击
2020/10/13 Python
Python数据分析库pandas高级接口dt的使用详解
2020/12/11 Python
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
TripAdvisor德国:全球领先的旅游网站
2017/12/07 全球购物
基层党建工作汇报材料
2014/08/15 职场文书
毕业证委托书范文
2014/09/26 职场文书
电力安全学习心得体会
2016/01/18 职场文书
离婚协议书范文2016
2016/03/18 职场文书
2016年世界人口日宣传活动总结
2016/04/05 职场文书