JavaScript函数调用解释保持返回null

时间:2014-01-14 00:36:39

标签: javascript ajax function call

我有一个代码将运行,收集数据(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

1 个答案:

答案 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!"

如果您传递nullundefined作为第一个参数,则函数内的this将为window

var name = "Steve";
sayName.call(Bob, "I'm");  // I'm Bob!
sayName.call(null, "I'm"); // I'm Steve!

当然,理想情况下,为了避免这种类型的头发,您的功能应该在考虑特定对象的情况下编写/调用,或者您应该避免在函数内部使用this。 两者都有时间和地点。