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
比较绕,多读几遍,就理解了。