当我在xhr.onload
中使用箭头功能时,没有任何响应。但是,如果我使用像xhr.onload = function(){}
这样的普通函数,则会得到响应。为什么以前的代码不能像使用xhr.onload = function(){}
时那样工作?
let btn = document.getElementById("button");
btn.addEventListener("click" , function(){
let xhr = new XMLHttpRequest();
xhr.open("GET" , "sample.txt" , true);
xhr.onload = () => {
if(this.status === 200){
console.log(this.responseText);
}
}
xhr.send();
})
答案 0 :(得分:3)
onload函数的上下文应该是原始的XMLHttpRequest,但是使用arrow函数您没有分配上下文,因此这很有可能是父作用域或窗口。这就是问题所在。