ES6 function函数和箭头函数区别

Posted fm060

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6 function函数和箭头函数区别相关的知识,希望对你有一定的参考价值。

1.写法不一样

//function
function fn(a,b){
return a+b
}
//arrow function
var foo = (a,b)=>{
return a+b
}

  

2.this的指向,function中的this可变(window,内部),箭头函数固定不变指向window

function foo(){
console.log(this)
}
var obj = {aa:foo}
foo() //window
obj.aa()//obj

var foo = ()=>{
console.log(this)
}
var obj = {aa:foo}
foo()//window
obj.aa()//window

  

3.构造函数

function Person(name,age){
this.name =name
this.age = age
}
var lenhart = new Person(lenhart,25)
console.log(lenhart) //成功

var Person = (name,age)=>{
this.name = name
this.age=age
}
var lenhart = new Person(‘lenhart‘,25) //Uncaught TypeError: Person is not a constructor

  

4.变量提升

foo()
function foo(){
console.log(‘123456‘)
}
arrowFn()//Uncaught TypeError: arrowFn is not a constructor
var arrowFn=()=>{
console.log(‘123456‘)
}

  

以上是关于ES6 function函数和箭头函数区别的主要内容,如果未能解决你的问题,请参考以下文章

ES6 function函数和箭头函数区别

ES6新增-箭头函数与普通函数的区别

es6中箭头函数

区别ES3ES5和ES6this的指向问题。区分普通函数和箭头函数中this的指向问题

ES6箭头函数中的this指向

箭头函数中this的指向问题