- 第一个代码块展示了箭头函数this绑定的特性(无法通过call改变,始终绑定定义时的this)
- 第二个代码块演示了经典this问题(setTimeout回调中的this指向问题)
// 文件1: 箭头函数的this绑定
var name = "why"
var foo = () => {
console.log(this)
}
foo()
var obj = {foo: foo}
obj.foo()
foo.call("abc")
}
// 文件2: 应用场景
var obj = {
data: [],
getData: function() [
// 发送网络请求,将结果放到上面data属性中
// 发送网络请求,将结果放到上面data属性中
// 在箭头函数之前的解决方案
// var _this = this
// setTimeout(function() {
// ...var result = ["abc", "cba", "nba"]
// ..._this.data = result
// }, 2000);
// 箭头函数之后
setTimeout(function() {
var result = ["abc", "cba", "nba"]
this.data = result
},
2000);
}
}
obj.getData()