js箭头函数用法(ES6新增)

ES6标准新增加了一种新的匿名函数定义方法:箭头函数(Arrow Function)

//ES6之前我们定义匿名函数,是这样的!
function(形参列表){代码块}

//现在我们可以使用箭头函数来定义,它是用箭头=>替代了关键字function,并把箭头放到形参列表和代码块之间!
(形参列表)=>{代码块}

箭头函数并不会替代以前定义匿名函数的方法,只是新增的一种定义匿名函数的方式!

特点:

一、如果只有一个形参,那么可以省省略形参列表的小括号//a是形参

a=>{代码块}
//如果没有形参,或形参个数大于1个,那么前边的小括号不能省略

  

二、如果代码块中只有一个表达式或一行命令,可以省略外边的大括号和return(注意:如果代码块有多行语句,那么大括号不能省略,return也不能省略

(x,y) => {return x*y}

//相当于
function(x,y){return x*y}

如果,只有一个行参,代码块只有一句命令,那么我们可以同时省略小括号,大括号还有return

x=>x*x

//相当于
function(x){
  return x*x
}

正常情况下,我们写函数,一般代码块命令都会大于一条,所以大括号和return都不会省略

三、箭头函数的this

箭头函数没有自己的this,它的this是继承所在作用域的this

如果箭头函数是在全局作用域定义的,那么它的this就是window对象

如果箭头函数是在函数内部定义的,那么它的this就是它所在函数的this

比较绕,多读几遍,就理解了。

posted @ 2021-07-26 16:19  Sam.Bao  阅读(269)  评论(0编辑  收藏  举报