- function () {}
- 箭头函数 不能命名、不能用new声明、没有prototype原型对象、没有自己的arguments对象、
- () => {}
- 使箭头函数看起来有arguments
function normal () {
return () => arguments.length
}
let arrow = normal(1,2,3)
console.log('今天吃了' + arrow() + '碗饭')
- this指向定义箭头函数时的对象,也就是说this会指向包裹箭头函数最近一层的普通函数的this
let normal = {
bibi: "bibi",
biubiu: function () {
setTimeout(function () { console.log(this.bibi) }, 10)
}
}
let normal1 = {
bibi: "bibi",
biubiu: function () {
setTimeout(() => { console.log(this.bibi) }, 10)
}
}
normal.biubiu()
normal1.biubiu()
- 箭头函数不可以使用call apply bind来改变this的指向,但是箭头函数依旧可以使用这些函数