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 相关文章推荐
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
May 06 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
May 07 Javascript
浅析Js(Jquery)中,字符串与JSON格式互相转换的示例(直接运行实例)
Jul 09 Javascript
javascript得到当前页的来路即前一页地址的方法
Feb 18 Javascript
深入理解JavaScript编程中的同步与异步机制
Jun 24 Javascript
分享有关jQuery中animate、slide、fade等动画的连续触发、滞后反复执行的bug
Jan 10 Javascript
Javascript 函数的四种调用模式
Nov 05 Javascript
Angular.js实现动态加载组件详解
May 28 Javascript
AngularJS select加载数据选中默认值的方法
Feb 28 Javascript
浅谈微信小程序flex布局基础
Sep 10 Javascript
重学JS 系列:聊聊继承(推荐)
Apr 11 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
Feb 19 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目录导航文件代码
2006/10/09 PHP
PHP 登录记住密码实现思路
2013/05/07 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
javascript编程起步(第七课)
2007/02/27 Javascript
看了就知道什么是JSON
2007/12/09 Javascript
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
js本身的局限性 别让javascript做太多事
2010/03/23 Javascript
ie6下png图片背景不透明的解决办法使用js实现
2013/01/11 Javascript
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
浅谈Javascript如何实现匀速运动
2014/12/19 Javascript
NPM 安装cordova时警告:npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to
2016/12/20 Javascript
JavaScript实现弹出广告功能
2017/03/30 Javascript
ES6中Math对象新增的方法实例详解
2017/04/25 Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
2018/08/24 Javascript
微信小程序新闻网站详情页实例代码
2020/01/10 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
浅谈Vue static 静态资源路径 和 style问题
2020/11/07 Javascript
Python装饰器使用示例及实际应用例子
2015/03/06 Python
django连接oracle时setting 配置方法
2019/08/29 Python
基于python实现学生信息管理系统
2019/11/22 Python
完美解决ARIMA模型中plot_acf画不出图的问题
2020/06/04 Python
Django nginx配置实现过程详解
2020/09/10 Python
常用的四种CSS透明属性介绍
2014/04/12 HTML / CSS
美国知名的网上鞋类及相关服装零售商:Shoes.com
2017/05/06 全球购物
乌克兰在线商店的价格比较:Price.ua
2019/07/26 全球购物
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
高中生毕业自我鉴定
2013/10/10 职场文书
广告设计专业自荐信范文
2013/11/14 职场文书
酒店销售经理岗位职责
2014/01/31 职场文书
学生安全教育材料
2014/02/14 职场文书
大学生个人实习的自我评价
2014/02/15 职场文书
争先创优公开承诺书
2014/08/30 职场文书
2015年市场营销工作总结
2015/07/23 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书
Java Kafka 消费积压监控的示例代码
2021/07/01 Java/Android