箭头函数
作用
- ES6 允许使用【箭头】 (=>)定义函数
特点
- 1、
this
是静态的,this
始终指向函数声明时所在作用域下的this
的值
js
function getName() {
console.log(this.name);
}
let getName2 = () => {
console.log(this.name);
};
// 设置 window 对象的 name 属性
window.name = 'squid-Xu';
const obj = {
name: '麻辣鱿鱼徐',
};
// 直接调用
getName(); //squid-Xu
getName2(); //squid-Xu
// call 方法调用
getName.call(obj); //麻辣鱿鱼徐
getName2.call(obj); //squid-Xu
- 2、不能作为构造实例化对象
js
let Person = (name, age) => {
this.name = name;
this.age = age;
};
let me = new Person('squid-Xu', 30);
console.log(me); // error ; Person is not a constructor
- 3、不能使用
arguments
变量
js
let fn = () => {
console.log(arguments); // error; arguments is not defined
};
fn(1, 2, 3);
- 4、箭头函数的简写
省略小括号,当形参有且只有一个的时候
js
let add = n => {
return n + n;
};
console.log(add(1)); // 2
省略{},当代码体只有一条语句的时候,此时return也必须省略
js
let pow = n => n * n;
console.log(pow(2)); //4