1.普通的箭头函数在严格模式下this也指向window
test1 = ()=>{
console.log(this) // this指向window use strict也是
}
2.箭头函数忽略任何形式的this指向改变(静态this指向),箭头函数一定不是一个构造器
var a = 2
var obj = {
a: 1
}
test1 = ()=>{
console.log(this.a)
}
test2 = function() {
console.log(this.a)
}
test1.call(obj) // 2
test1.apply(obj) // 2
test1.bind(obj)() // 2
test2.call(obj) // 1
test2.apply(obj) // 1
test2.bind(obj)() // 1
3.箭头函数的this不是谁绑定就指向谁
obj.test = ()=>{
console.log(this) // window
}
obj.test()
obj.test3 = function() {
var t1 = ()=>{
// this指向obj
// 箭头函数的this—>外层作用域的this指向(外层的函数不能是箭头函数)
console.log(this)
}
var t2 = function() {
// this 指向window
console.log(this)
}
t1()
t2()
}