1.基本概念
箭头函数是语义化的函数,它主要来源于 Lambda、 c++、 java等。
基础语法:一个小括号加上箭头指向一个大括号。
()=> {}
以前的函数:
function foo(a,b){
console.log(a,b);
}
foo(1,2);
箭头函数:
var foo1 = (a,b) =>{
console.log(a + b);
}
foo1();
2.需要注意的点
1)参数只有一个,()可以省略, 一条语句{}也可以省略(return语句时,把return省略)
var foo1 = a =>{
console.log(a);
}
foo1(1);
var arr = [1,2,3]
//老方法
console.log(arr.map(function(x){
return x*x;
}))//1 4 9
//箭头函数
console.log(arr.map(x => x * x));// 1 4 9
2)参数只有0或者2个,2个以上,()必须有 ,语句2条以上,{}必须有
3)this 指向问题
箭头函数没有this指向,函数中的this指向离函数最近的有this指向的父级.
4)不能使用arguments
var obj = {
output: ()=>{
//console.log(arguments);//报错,不能使用
console.log(this);//箭头函数,指向windows
}
}
5)不能当做构造函数
var obj = {
init: ()=>{
console.log(this);//window
}
}
new obj.init();//报错,箭头函数不能做构造函数
网友评论