ES6 箭头函数声明以及特点
ES6 允许使用(=>) 定义函数
声明一个函数:
let fn = function(){
}
let fn = (a,b) =>{
return a+b;
}
//调用函数
fn(1,2);
1. this是静态的,this始终指向函数声明时所在作用域下的this的值
function getName(){
console.log(this.name);
}
let getName2 = () =>{
console.log(this.name);
}
//设置window对象的name属性
window.name='abc';
const school={
name:'123';
}
getName(); //结果是abc
getName2(); //结果是abc
//call方法改变this的指向
getName.call(school); //结果为123
getName2.call(school); //结果为abc
2. 不能作为构造实例化对象
let Person = (name,age) => {
this.name=name;
this.age=age;
}
let me = new Person('xiao',30);
console.log(me); //报错
3. 不能使用arguments变量
let fn = ()=>{
//arguments用于保存实参
console.log(arguments);
}
fn(1,2,3); //报错
4. 箭头函数的简写
//省略小括号,当形参有且只有一个的时候
let add = (n) =>{
return n+n;
}
console.log(add(9))
let add = n =>{
return n+n;
}
console.log(add(9))
//省略花括号,当代码体只有一条语句的时候,此时return必须省略
let pow = n => n * n;
console.log(pow(9));