JQuery回调函数流程

时间:2011-11-03 19:23:34

标签: javascript jquery

我是jquery的新手。所以我在谷歌搜索jquery回调函数,我得到了一个代码,但我不明白代码的流程。所以请任何人帮我理解编码流程。

这是代码

function mightyplugin(foo, callback){
// big code block here

   callback.apply(this, [foo]);
}

mightyplugin("Bar!", function(param){
    alert(param);
});

这里我将"Bar!"作为一个参数传递给函数mightyplugin和一个匿名函数。

  1. callback.apply做了什么。 this关键字实际上会包含哪些内容....为什么需要它。
  2. 为什么[foo]作为数组传递。
  3. 如果我传递许多参数,如

    ,那将是什么语法
    mightyplugin("Bar!","1stone","2ndone", function(param){
        alert(param);
    });
    
  4. 我知道第一个函数完成时会调用回调函数,但这里情况不同......为什么?

    请解释...
    感谢

2 个答案:

答案 0 :(得分:1)

首先,这不是jquery。这是一个如何自己处理回调函数的例子,与jquery无关。

回答你的问题:

  1. 有关apply的详细信息,请访问:https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply
  2. 正如您将看到的,如果您阅读上述链接,则传递给apply的第二个参数是一个参数数组。
  3. 我不确定您对其他参数的意图是什么,但您只需在函数中添加更多参数:

  4. function mightyplugin(foo, foo1, foo2, callback){
       // big code block here
    
       callback.apply(this, [foo, foo1, foo2]);
    }
    
    mightyplugin("Bar!","1stone","2ndone", function(param){ alert(param); });
    

答案 1 :(得分:1)

  1. this是当前的函数上下文,在您的情况下是mayyplugin
  2. foo作为数组传递,因为apply需要一个数组作为参数
  3. mightyplugin([1,2,3,4], function(){...});
    然后callback.apply(this, foo)
  4. 您可以在apply上了解有关Mozilla开发者网络的更多信息,并且它是兄弟call