初试箭头函数
作用:函数目的指向性更强,可读性更好,简化代码,提高开发效率
特点:
代码1:
1 | let add = (a, b) => { |
代码2:
1 | //对象的应用 |
代码3:
箭头函数必须用一个东西来存,可以使变量、属性或者使数组,想比于ES5中函数可以用function funC(a,b){}格式声明,箭头函数是不允许的。
1 | //用变量存 |
高阶函数应用
数学和计算机科学中,高阶函数是至少满足下列一个条件的函数: 接受一个或多个函数作为输入参数,返回输出一个函数
箭头函数在高阶函数的应用中可以使代码更加简便,下面来看一下对比:
1 | //高阶函数之ES5的传统方法 |
arguments
内部arguments和this都是由定义时外围最接近一层的非箭头函数的arguments和this决定其值的
1 | // 举个例子 |
再举个带外围非箭头函数的例子:
1 | function test(){ |
再说另一个应用场景:
1 | //ES5中获取外围最近函数的arguments的做法 |
1 | //ES5中获取外围最近函数的arguments的做法 |
this
内部arguments和this都是由定义时外围最接近一层的非箭头函数的arguments和this决定其值的
不过有一点不同,对于arguments如果外围没有非箭头函数,使用时是报错,提示arguments未定义;
而this如果外围没有非箭头函数,使用时不会报错,规定其值为window。
1 | let sum = () =>{ |
例子:
1 | //之所以用var定义a是为了把a挂载到window上 |
1 | //之所以用var定义a是为了把a挂载到window上 |
比较实际的一个应用setTimeout:
setTimeout是window对象里的一个方法,其this是指向window的
1 | let myObj = { |
1 | //针对上述情况的解决方法 |
1 | //用箭头函数直接搞定 |