// ES6 允许使用箭头函数(=>) 定义函数
//es5 声明函数
// let fn() = function(){}
/*let fn = (a,b) => {
return a+b;
}
let result = fn(500,600);
console.log(result);*/
// 与之前函数的区别
//1. this是静态的,this始终指向函数声明时所在的作用域下的this的值
function get1(){
console.log(this.name);
}
let get2 = ()=>{
console.log(this.name);
}
//设置window对象的那么属性
window.name= ‘小安‘;
const school = {
name : ‘北京大学‘
}
// 直接调用
//get1();
//get2();
//
//call 方法调用,它可以改变函数内部this的值
//get1.call(school);
//get2.call(school);
// 2. 不能作为构造函数去实例化对象
/*let per = (name,age) => {
this.name = name;
this.age = age;
}
let me = new per(‘xiao‘,30);*/
// 3. 不能使用arguments(保存实参) 变量
/*let fn = ()=>{
console.log(arguments);
}
fn();*/
// 报错,arguments这个变量未定义
//
// 4. 箭头函数的简写
// 1)当形参有且只有一个的时候,省略小括号
/*let add = n =>{
return n++;
}
console.log(add(3));*/
// 2) 当代码体只有一条语句时,此时return必须省略,执行结果就是函数的返回值,可省略花括号
let pow = n => n * n;
console.log(pow(3));
原文:https://www.cnblogs.com/xiaoxuJS/p/14430891.html