【问题标题】:JavaScript Function Call explained keeps returning nullJavaScript 函数调用解释不断返回 null
【发布时间】:2014-01-14 00:36:38
【问题描述】:

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

它只是不工作?有人可以更好地解释 call 的论点吗?

更新

我需要了解如何将参数作为预定义变量。

前:

 _$.ajax({
    url:"url",
    cache:false
    }).done(

function(数据){ console.log(data); });

data 或任何他们想要的参数名称被预定义为 ajax.response

【问题讨论】:

  • 你在使用 jQuery 吗?你检查过文档:api.jquery.com/get 吗?
  • 我没有使用 jquery 我正在编写我自己的库我试图用更多信息更新我的问题。我现在正忙着想办法解决这个问题:D 对不起

标签: javascript ajax function call


【解决方案1】:

.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
两者都有时间和地点。

【讨论】:

  • 好吧,你告诉我的,我会再试一次
  • 好的,所以它并没有完全满足我的需要。我希望参数是 xhr.responseText 的 responseText,以便他们以后可以操作和使用它。
猜你喜欢
  • 2014-06-29
  • 1970-01-01
  • 1970-01-01
  • 2020-06-03
  • 1970-01-01
  • 1970-01-01
  • 2013-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多