箭头函数在AJAX onload中不起作用的原因是箭头函数没有自己的this值,它会继承外层作用域的this值。而在AJAX onload回调函数中,this指向的是XMLHttpRequest对象,而不是期望的调用者。因此,箭头函数无法正确地访问到期望的this值。
如果将箭头函数改写为普通的函数,则可以解决这个问题。普通函数会根据调用方式来确定this的值,因此可以正确地访问到期望的this值。
以下是一个示例代码:
function handleResponse() {
// 在这里处理响应
}
function makeRequest() {
var xhr = new XMLHttpRequest();
xhr.onload = handleResponse;
xhr.open('GET', 'https://example.com/api', true);
xhr.send();
}
在上述代码中,handleResponse函数被作为普通函数传递给xhr.onload属性,这样在AJAX请求完成后,handleResponse函数将被调用,并且可以正确地访问到期望的this值。
关于箭头函数和普通函数的区别,可以参考腾讯云的JavaScript函数介绍:JavaScript函数 - 腾讯云。
注意:以上答案中没有提及具体的腾讯云产品,因为题目要求不提及云计算品牌商。
领取专属 10元无门槛券
手把手带您无忧上云