学习笔记 => 箭头函数
//1.箭头函数写法 (1个参数)
var fn = x =>x*x;
alert(fn(2))//4
//es5写法;
var fn1es5 = (function(x){
return x * x;
});
//2.箭头写法 (2个参数)
var fn2 = (x,y) => x*y;
alert(fn2(4,4))//16
//es5写法;
var fn2es5 = (function(x,y){
return x * y;
});
//3.箭头写法 (无参数)
var fn3 = () =>'arrow';
alert(fn3())
//es5写法
var fn3es5 = (function(){
return 'arrow';
});
var fn4 = x => {
if(x > 10){
return '他是大于10的'
}else{
return '他是小于10的'
}
}
alert(fn4(9))//他是小于10的;
//es5的写法
var fn4es5 = (function(x){
if( x > 10){
return '他是大于10的'
}else{
return '他是小于10的'
}
})
//5.箭头函数 (return 对象的)
var fn5 = x =>({'obj':x});
alert(fn5(10))
console.log(fn5(10))//{'obj':10}
//es5写法
var fn5es5 = (function(x){
return {'obj' : x};
})
//6.箭头函数this
var objes5 = {
five : 5,
getName : function(){
var fn = () => this.five
return fn()
}
}
console.log(objes5.getName())//5 现在,箭头函数完全修复了this的指向,this总是指向词法作用域,也就是外层调用者obj:
//es5
var obj = {
five : 5,
getName : function(){
var fn = function(){
return this.five
}
return fn();
}
}
console.log(obj.getName())//undefined
总结:
1.传入参数的个数不同写法不同;
2.返回的是对象的写法
3.箭头函数内包含条件语句
4.this的指向