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,它指向的就是运行时所在的对象,即user
console.log("getName方法:"+this.name); //打印输出lz
},
getName1(){
setTimeout(function(){
// 对于setTimeout里的this,默认是指向window
console.log("getName1方法:"+this.name); //打印输出azhi
});
},
getName2(){
setTimeout(() => {
// =>函数里的this是指向定义时上层作用域中的this,也就是user中的this
console.log("getName2方法:"+this.name); //打印输出lz
});
},
};
user.getName();
user.getName1();
user.getName2();
</script>