我最近开始使用ECMAScript 2016的箭头函数而不是原始语法来定义函数。如果我每次想要定义一个函数时都使用这种语法,或者是否存在速度等缺点,那会没关系吗?
(function(){
alert('Is this');
})();
(()=>{
alert('somehow better than this?')
})();
答案 0 :(得分:4)
需要注意的一点是箭头函数没有使用arguments
对象。
let test = () => {
// expect an error
console.log(arguments);
}
test(1,2,3);
this
new
:
let Person = (name) => {
this.name = name;
}
// expect an error
let person = new Person('Bob');
有许多不同之处,我会检查一些documentation箭头函数。
答案 1 :(得分:1)
箭头函数始终是匿名的,并且lexical this。性能上的差异应该可以忽略不计,但this
可能指的是意外的东西(或者它可能指的是你期望的,你不必绑定)。