箭头函数以及声明特点
ES6允许使用箭头(=>)
定义函数
声明一个函数
// let fn = function() {
//
// }
// ES6
let fn = (a, b) => {
return a + b
}
-
this是静态的,this始终指向函数声明时所在作用域下的this值(继承上一层自定义函数的this,若无上层自定义函数,则为window)
window.name = "小猪" let fn = function() { console.log(this.name) } let fn2 = () =>{ console.log(this.name) } let person = { name: "张三" } fn() // 小猪 fn2() // 小猪 fn.call(person) // 张三 fn2.call(person) // 小猪
-
不能作为构造函数实例化对象
let Person = (name, age) => { this.name = name; this.age = age; } let me = new Person("周杰伦", 22) console.log(me) // 报错
-
不能使用
arguments
变量let fn = () => { console.log(arguments) } fn(1, 2, 3) // 报错
-
箭头函数的简写
// 当形参有切只有一个时,可省略() let add = n => { return n + n } // 当代码题只有一条语句时,可省略{} let pow = n => n * n