ES6 允许使用「箭头」 (=>)定义函数。
声明一个函数
let fn = function(){
}
letfn=(a,b)=>{
return a + b;
}
调用函数
let result = fn(1, 2);
console .log(result);
箭头函数的this 是静态的。this 始终指向函数声明时所在作用域下的this 的值
function getName( ){
console.log( this.name);
}
let getName2 = () => {
console.log ( this.name) ;
}
//设置window对象的name属性
window.name = “小明”;
const school = {
name:"xiaoming";
}
//直接调用
getName(); //小明
getName2(); //小明
//call方法调用 (可以改变函数内部this的值)
getName.call(school); //xiaoming
getName2.call(school); //小明
箭头函数不能作为构造实例化对象
let Person = (name,age) => {
this.name = name;
this.age = age;
}
let me = new Person('xiao',30);
console.log(me); //报错
箭头函数不能使用arguments(保存实参)变量
let fn = () => {
console.log(arguments)
}
fn(1,2,3) //arguments is not defind
箭头函数的简写
当形参有且只有一个时,可省略小括号
let add = n => {
return n+1;
}
console.log(add(9)); //10
当代码体有且只有一条语句时,可省略花括号,此时return也必须省略,语句的执行结果就是函数的返回值。
let pow = n => n*6;
console.log(pow(9)); //54