1、ES6中允许使用箭头定义函数
<script>function fn1_es5(){};var fn1_es6 = () => {};function fn2_es5(x){return x;};var fn2_es6 = (x) => x;function fn3_es5(x,y){return x+y;};var fn2_es6 = (x,y) => x+y;function fn3_es5(x,y){let z = 10;return x+y+z;};var fn3_es6 = (x,y) => {let z = 10;return x+y+z;};function fn4_es5(x,y){return {x,y};}var fn4_es6 = (x,y) => ({x,y})console.log(fn2_es6(1,2));console.log(fn4_es6(1,2));console.log(fn4_es6(1,2).x);</script>
2、箭头函数的作用
1、简化代码
2、简化回调函数
<script>var arrays = [10,20,30];arrays.map(item =>{console.log(item);});arrays.map((item,index) =>{console.log(item,index);});</script>
3、关于箭头函数的this
对于普通函数来说,this是指向函数运行时所在的对象,但在箭头函数中却不是,它是指向定义时上层作用域中的this,如下代码:
<script>var name = "azhi";var user = {name:"lz",getName(){// 对于普通函数里的this,它指向的就是运行时所在的对象,即userconsole.log("getName方法:"+this.name); //打印输出lz},getName1(){setTimeout(function(){// 对于setTimeout里的this,默认是指向windowconsole.log("getName1方法:"+this.name); //打印输出azhi});},getName2(){setTimeout(() => {// =>函数里的this是指向定义时上层作用域中的this,也就是user中的thisconsole.log("getName2方法:"+this.name); //打印输出lz});},};user.getName();user.getName1();user.getName2();</script>
