【JavaScript】箭头函数及其应用

什么是箭头函数?

  箭头函数表达式的语法比函数表达式更短,并且不绑定自己的this,arguments,super或 new.target。箭头函数与传统函数最大的不同之处在,禁用new操作。
  将箭头函数限制为使用固定this引用,有利于JavaScript引擎优化处理。
  其实箭头函数本身没有this,而自身的this会在函数声明的时候做绑定,它是根据上级的function中的this来做绑定的

let f = ([a, b] = [1, 2], {x: c} = {x: a + b}) => a + b + c;
f();  
// 6

  箭头功能可以有一个“简写体”或常见的“块体”。
  在一个简写体中,只需要一个表达式,并附加一个隐式的返回值。
  在一个块体中,必须使用明确的return语句。

var func = x => x * x;                  
// 隐式返回,一个参数时可不加括号

var func = (x, y) => { return x + y; }; 
// 显式返回,多个参数时必须加括号

var add = () => { console.log("hey foo") };
// 如果没有参数,那么你必须要有一个空括号——不能没有

注意:箭头函数在参数和箭头之间不能换行。

箭头函数支持rest参数、支持默认参数、可以返回对象字面量


为什么要拥抱ES6的箭头函数?

  柯里化箭头函数不仅能让代码更加清晰并具有可读性(因为没有ES5中多余的语法干扰),还能减少错误的藏身之处,因为它能让 bug 隐藏的部分更少。


“this”在箭头函数中如何工作?

  箭头函数没有它自己的this值。箭头函数中的this值总是从封闭范围继承。在JavaScript中,每个函数都有它自己的this值,这取决于代码是如何调用函数的。


什么情况下不能用箭头函数?

  箭头函数无疑是 ES6 带来的重大改进,在正确的场合使用箭头函数能让代码变的简洁、短小,但某些方面的优势在另外一些方面可能就变成了劣势,在需要动态上下文的场景中使用箭头函数你要格外的小心,这些场景包括:

  • 定义对象方法   
  • 定义原型方法   
  • 定义构造函数   
  • 定义事件回调函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值