博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ECMAScript6箭头函数ArrowFunction"=>"
阅读量:5334 次
发布时间:2019-06-15

本文共 1227 字,大约阅读时间需要 4 分钟。

一、说明

ECMAScript6可以用箭头"=>"定义函数。x => x * x(x) => {return x * x;}与匿名函数function(x){return x * x;}相等。

二、示例

2.1 没有参数的箭头函数

var f = () => 9;console.log(f()); //9

2.2 一个参数的箭头函数

var f = x => x * x;console.log(f(3)); //9var f = x => {return x * x;};console.log(f(3)); //9var f = (x) => x * x;console.log(f(3)); //9var f = (x) => {return x * x;};console.log(f(3)); //9

2.3 两个或更多参数的箭头函数

var f = (x, y) => x * y;console.log(f(2, 3)); //6var f = (x, y , ...more) => {    var multiply = x * y;    for(var i = 0; i < more.length; i++){        multiply *= more[i];    }    return multiply;};console.log(f(2, 3, 4, 5)); //120

2.4 map/reduce应用

var f = [1, 2, 3].map(x => x * x);console.log(f); //[1, 4, 9]var f = [1, 2, 3].reduce((x, y) => x + y);console.log(f); //6

三、this作用域/返回对象

3.1 this作用域

箭头函数中的this总是指向外层作用域,即使在内层函数里面,所以可以不用写var that = this;

var obj = {    name: 'mazey',    f: function(){        var myName = () => this.name; //这里的this指向obj        return myName();    }};console.log(obj.f()); //mazey

3.2 返回对象

因为对象和块的冲突问题,箭头函数返回一个如{name:'mazey'}的对象必需用()括起来。

var f = () => {name:'mazey'};console.log(f()); //undefinedvar f = () => ({name:'mazey'});console.log(f()); //{name: "mazey"}

四、练习代码

转载于:https://www.cnblogs.com/mazey/p/7198149.html

你可能感兴趣的文章
NEYC 2017 游记
查看>>
[搬运] 写给 C# 开发人员的函数式编程
查看>>
Python之旅Day14 JQuery部分
查看>>
core--线程池
查看>>
redux-effect
查看>>
Swift和OC混编
查看>>
Android轻量级的开源缓存框架ASimpleCache
查看>>
他山之石:加载图片的一个小问题
查看>>
shell - 常识
查看>>
mssql sqlserver 使用sql脚本 清空所有数据库表数据的方法分享
查看>>
分层图最短路【bzoj2763】: [JLOI2011]飞行路线
查看>>
linux下编译复数类型引发的错误:expected unqualified-id before '(' token
查看>>
codeforces 1041A Heist
查看>>
字典常用方法
查看>>
Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列(RabbitMQ)
查看>>
python的猴子补丁monkey patch
查看>>
架构模式: API网关
查看>>
正则验证积累
查看>>
Linux学习-汇总
查看>>
83. 删除排序链表中的重复元素
查看>>