ES6中的箭头函数(之前确实是通过阮一峰老师的书籍学过,但是学的很模糊哦,呜呜呜)
基本语法:(参数)=>{函数内容}
注意:箭头必须和参数在同一行(显然这也是必要的)
如果只有一个参数,则括号()可以省略,如果函数只有一个语句,则{}可以省略,另外后者的写法将会默认return其属性但不需要手写return(但是这个写法,在返回对象为{}对象字面量(注意此处对象的含义,咳咳)时必须加上return语句,以免造成语句的歧义)
()=>{return {AX:666}};
箭头函数常用在将函数作为另一个函数的参数时使用,比如用在setTimeout
以及setTimeIntervals
中
箭头函数有以下几个特点:
1.不绑定this
这意味着在箭头函数中的this总是指向上一作用域之中,也就是指向之前作用域所指向的对象(若之前也没有,就沿着作用域链往上搜索this)
因此,在定义方法时,如果想要使用箭头函数,那么这个函数尽量不要使用到this,或者要使用,也必须要确保使用的this是上一作用域的。
2.没有arguments对象
不能通过arguments对象来调用输入参数。
个人认为箭头函数一般都是写死在属性中,或者本身就是参数,也就没有一定要明确输入参数的必要。
3.不能作为生成器和构造器:
也就是说因为箭头函数没有this,没法构造对象和生成对象(箭头函数不能使用yield关键字)
4.没有原型
let fn=()=>{};
console.log(fn.propotype);//undefinded