我有一个代码将运行,收集数据(ajax库),然后我需要得到,以便用户可以将它自己的函数添加到库并运行它。有点像$.get
很难解释我的意思。
示例
_$.ajax({
url:"url",
cache:false,
done:function(data){
console.log(data);
}
});
虽然我不确定如何确保数据等于ajax.response
,这在技术上是XMLHttpRequest.responseText;
我已尝试在我的代码中执行此操作
var ajax = {
response:null,
fnDone:null,
done:function(fn){
return ajax.done.call(fn);
},
init:function(){ //js to start xml
ajax.process();
},
process:function(){ // js to finish XML
ajax.done(ajax.fnDone);
}
ajax:function(opts){
ajax.fnDone = opts.done;
}
}
它只是不起作用?有人可以更好地解释调用的论点吗?
更新
我需要了解如何将参数作为预定义变量。
EX:
_$.ajax({
url:"url",
cache:false
}).done(
function(
数据 ){ console.log(data); });
虽然数据或他们想要的任何内容,但参数名称预定义为ajax.response
答案 0 :(得分:0)
.call
期望this
成为第一个参数,然后依次为每个函数的参数。
var Bob = { name : "Bob" },
sayName = function (greeting) { console.log(greeting + " " + this.name + "!"); };
sayName.call(Bob, "Hi, I'm"); // "Hi, I'm Bob!"
如果您传递null
或undefined
作为第一个参数,则函数内的this
将为window
。
var name = "Steve";
sayName.call(Bob, "I'm"); // I'm Bob!
sayName.call(null, "I'm"); // I'm Steve!
当然,理想情况下,为了避免这种类型的头发,您的功能应该在考虑特定对象的情况下编写/调用,或者您应该避免在函数内部使用this
。
两者都有时间和地点。