箭头函数
1. 声明
let fn1 = () => {
// 代码体
}
2.带参
let fn2 = (a, b) => {
return a + b
}
let result = fn2(1, 2) // 3
3. 特性一
// this 是静态的,this 始终指向函数声明时所在作用域下的 this 的值
function getName() {
console.log(this.name)
}
let getName2 = () => {
console.log(this.name)
}
// 设置 window 对象的 name 属性
window.name = 'window'
const school = {
name: 'school'
}
// 直接调用
getName() // window
getName2() // window
// call 方法调用
getName().call(school) // school
getName2().call(school) // window
4. 特性二
// 不能作为构造函数实例化对象
let Person = (name, age) => {
this.name = name
this.age = age
}
let me = new Person('小明', 22) // 报错:Person is not constructor
5. 特性三
// 没有 arguments 变量
let fn = () => {
console.log(arguments)
}
fn(1, 2, 3) // arguments is not defined
6. 箭头函数的简写
// 1. 省略小括号,当形参有且只有一个的时候
let add = n => {
return 2 * n
}
// 2. 省略花括号,当代码只有一条语句时, return 也必须省略,默认返回这条语句的值
let pow = n => n * n