【转载】ES6——箭头函数

转载自:https://segmentfault.com/a/1190000004470909

侵删!

箭头函数

定义

定义一个箭头函数很简单,基本语法是:


    ([param] [, param]) => {
       statements
    }
    
    param => expression

param 是参数,根据参数个数不同,分这几种情况:
() => { ... } // 零个参数用 () 表示;
x => { ... } // 一个参数可以省略 ();
(x, y) => { ... } // 多参数不能省略 ();
当然,和普通函数一样,箭头函数也可以使用 ES6 新增的「默认参数」和「剩余参数」( Firefox15+ 开始支持):


    var func1 = (x = 1, y = 2) => x + y; func1(); // 得到 3 var func2 = (x, ...args) => { console.log(args) }; func2(1,2,3); // 输出 [2, 3] 

箭头函数允许多行语句或者单行表达式作为函数体。多行语句要用 {} 括起来;单行表达式不需要 {},并且会作为函数返回值:


    x => { return x * x }; // 函数返回 x * x
    x => x * x; // 同上一行
    x => return x * x; // SyntaxError 报错,不能省略 {} x => { x * x }; // 合法,没有定义返回值,返回 undefined 

箭头函数也是 JS 函数的一种,所以之前的 instanceof 和 typeof 依然可用:


    var func1 = () => {};
    func1 instanceof Function; // true var func2 = () => {}; typeof func2; // "function" 

特性

箭头函数内部没有 constructor 方法,也没有 prototype,所以不支持 new 操作。new (() => {}) 会触发 TypeError 报错。

new (() => {}) // Uncaught TypeError: () => {} is not a constructor(…)

箭头函数没有自己内部的 this 指针。在箭头函数中, this 指针是继承于其所在的作用域。(个人理解为箭头函数不具备函数作用域,相当于表达式,this即为箭头函数被调用时外层的this)

 

    var a = 1;
    var test = {
        a: 100, c: function(){ console.log(this.a); }, d: ()=>{console.log(this.a)} } test.c();//100 test.d();//1

转载于:https://www.cnblogs.com/iamzhaobo/p/6437368.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值