背景

箭头函数,出现于ES6规范中。

使用

就是lambda函数。

一般使用:

(a, b) => { return a + b; }

简略模式:

当参数只有一个时,可以省略括号;当返回值只有一个表达式时,可以省略花括号和return,但如果返回的是对象字面量{a:3},则需要花括号和return语句。

a => a + b;

属性匹配:

这是一个特点,能匹配对象里的属性,如果不存在,为undefined。

({a, b}) => console.log(a, b);

//相当于
function(o) {
   console.log(o.a, o.b);
}

this

箭头函数的this跟function不一样,用的时候千万小心。

对于function:

  • function的this指向调用者本身!

  • 如果function是直接调用而不是作为方法调用:非严格模式指向global;严格模式指向undefined。

对于箭头函数:

  • this指向函数定义时的环境this,一层层往上找this,跟调用方没关系。

  • 如果没有,则是{}!无论严格模式与否。

其他限制

不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。 不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用Rest参数代替。 不可以使用yield命令,因此箭头函数不能用作Generator函数。

nodejs 箭头函数的更多相关文章

  1. nodejs 之=> 函数

    基本用法: ES6中允许使用“箭头”(=>)定义函数 var f = v => v; 上面代码相当于定义了一个函数 f : var f = function(v){ return v; } ...

  2. 关于ES6 用箭头函数后的 this 指向问题

    最近写完小程序后, 开始学习React, 因为有编译器, 就直接用ES6 新语法了, 中间自然离不开  () => { console.log('箭头函数的this是指向哪的问题')}; var ...

  3. ES6 箭头函数中的 this?你可能想多了(翻译)

    箭头函数=>无疑是ES6中最受关注的一个新特性了,通过它可以简写 function 函数表达式,你也可以在各种提及箭头函数的地方看到这样的观点——“=> 就是一个新的 function”. ...

  4. ES6箭头函数与展开运算符

    箭头函数:省去了关键字function和return: eg: reduce=(a,b)=>a+b;//返回a+b的值 redduce=(a,b)=>{console.log(a);con ...

  5. 箭头函数和Buffer对象

    一.箭头函数 普通函数1 var add = function (a, b) { return a + b; } 普通函数2 function add (a, b) { return a + b; } ...

  6. 深入理解this机制系列第三篇——箭头函数

    × 目录 [1]痛点 [2]解决 [3]基本用法[4]回调函数[5]注意事项 前面的话 this机制与函数调用有关,而作用域则与函数定义有关.有没有什么是可以将this机制和作用域联系起来的呢?本文将 ...

  7. Es6 箭头函数

    1.单参数function cheng(a=3){    return a*a;}let cheng= (a=3)=>a*a;console.log(cheng(9));2.多参数functio ...

  8. 【javascript】箭头函数

    ES6标准新增了一种新的函数:Arraw Function(箭头函数). x => x * x 这个函数相当于 function (x){ return x * x; } 题外话:user st ...

  9. JS中generater和箭头函数

    generater跟函数很像: function* fn(x){ yield x; yield x++; return x;} 如上所示,generater用function*定义,可以用yield返 ...

随机推荐

  1. PHP面试题学习

    PHP 开发工程师笔试试卷 姓名 :__________ 第一部分为必答题,第二.三部分任选其一回答 一. PHP 开发部分 1.合并两个数组有几种方式,试比较它们的异同. 2.请写一个函数来检查用户 ...

  2. Nginx调试入门

    1.查看nginx.conf配置文件是否有错误 ./nginx -t -c ./nginx.conf   #可以看到,正常情况下语法没问题,配置文件测试成功了,-t测试-c配置文件 如果我故意加入错误 ...

  3. 冒号课堂 编程范式与OOP思想

    上篇:编程范式与编程语言 第1课 开班导言 第2课 重要范式 第3课 常用范式 第4课 重温范式 第5课 语言小谈 第6课 语言简评 下篇:抽象机制与对象范式 第7课 抽象封装 第8课 抽象接口 第9 ...

  4. redis.conf 配置信息:读取及修改命令

    相关资源 网址 官方地址(网页中 Command + F,输入井号"#",方便查看没有注释的行) http://download.redis.io/redis-stable/red ...

  5. 2.3 Visio画虚线后插入word或PPT变为实线

    选中实线后,左键选择->格式->线条->粗细->自定义->设置为0pt

  6. delphi 下载

    最新(更多)内容,请到  http://www.cnblogs.com/key-ok/p/3465486.html  Borland Pascal v7.1 (13.89 Mb)  Delphi 1 ...

  7. 后台自动运行,定期记录定位数据(Hbuilder监听 app由前台切换到后台、切换运行环境的 监听方法)

    http://ask.dcloud.net.cn/question/28090 https://blog.csdn.net/qq_37508970/article/details/86649703 各 ...

  8. eclipse运行web项目注意有些坑

  9. json 数据在textarea中显示的时候,切换 beauty和ugly模式

    转化为beauty模式 var jsonText = $('#json').val(); $('#json').val(JSON.stringify(JSON.parse(jsonText), nul ...

  10. word embeddding和keras中的embedding

    训练好的词向量模型被保存下来,该模型的本质就是一个m*n的矩阵,m代表训练语料中词的个数,n代表训练时我们设定的词向量维度.当我们训练好模型后再次调用时,就可以从该模型中直接获取到对应词的词向量. 通 ...