gpt4 book ai didi

javascript - 带有 Javascript 和回调函数的 OOP

转载 作者:行者123 更新时间:2023-11-30 12:46:18 25 4
gpt4 key购买 nike

不知道如何表述问题,所以如果您愿意,可以随意更改。

那么我的代码有什么问题吗?

(function() {
//--> DOM is ready

var _$ = {
g: function(u,c){ // c is callback function
x=new XMLHttpRequest();
x.onreadystatechange = function(c){ // same c isn't it?!
d="", e=null;
if (x.readyState==4) {
if (x.status==200) { d = x.responseText; }
else { e = x.statusText; }
c(e,d); // how come c is an object
// and not a function here?!
}
}
x.open("GET",u,true); x.send(null);
}
}

//--> Call our method:
_$.g("http://copy.com/K8UjOnVoyUCiNmPC/qcm/0/1/2.json",
function(e,d){
if(!e){
window.alert(d);
}
}
);

//--> .DOM
})();

有什么线索是我在这里遗漏了什么吗?如何正确处理?

谢谢!

最佳答案

您实际上并没有将相同的 c 传递给 x.onreadstatechange 函数,而是定义了一个由 onreadystatechange 指定的参数 事件。这是您需要做的:

.
.
.
var _$ = {
g: function(u, c) {
x = new XMLHttpRequest();
x.onreadystatechange = function() { // <== REMOVE: c as parameter
d = "", e = null;
if (x.readyState == 4) {
if (x.status == 200) { d = x.responseText; }
else { e = x.statusText; }
c(e, d); // Now c is the c that you passed into g
}
}
x.open("GET", u, true);
x.send(null);
}
}
.
.
.

关于javascript - 带有 Javascript 和回调函数的 OOP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22395661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com