前端番外小知识——为什么需要箭头函数?
一,问题
为什么需要箭头函数?
二,目的
消除函数的二义性
三,函数的用法
1,指令序列
2,构造器
ES6之前
function fn() {
console.log('cdoerkey');
}
fn() // cdoerkey
new fn() //cdoerkey
ES6之后有了class和箭头函数,都可以消除函数的二义性
// 普通指令函数
var fun = () => {
console.log('coderkey');
}
fun() // coderkey
new fun() // TypeError: fun is not a constructor
// class构造器
class A {
constructor() {
console.log('coderkey');
}
}
A() // TypeError: Class constructor A cannot be invoked without 'new'
new A() // coderkey
箭头函数代表简单的指令序列,跟构造器有关的所有东西都不用,例如this,new,prototypes