Javascript匿名回调函数

时间:2015-03-09 01:36:34

标签: javascript function callback

我现在回调fn是什么以及它是如何工作的,但我似乎不明白它是如何在jQuery中调用的,例如:

$('#btn').click(function(){
    alert('Test');
});

我知道当click方法执行完毕后,回调fn会被调用,但我只是不明白该匿名回调fn是如何被调用的。

在这个例子中:

function Greeting(function(){alert('Callback fn inside Greeting');}){
          alert('Inside Greeting fn');
        }

我假设在显示Greeting内部警报后,那么我的回调fn将被调用,但事实并非如此。我只是看到这个错误“未捕获的语法错误:意外的令牌功能”。我的问题是,如何调用我在Greeting Fn中作为参数的匿名回调fn?提前致谢。

1 个答案:

答案 0 :(得分:3)

你需要分别做两件事:

  1. 定义采用匿名回调的功能
  2. 调用该函数,并传入回调。
  3. 在您的第二个示例中,您同时执行这两个操作 - 您需要将它们分开。以下是您的工作方式:

    // Step 1: Define the function that takes an anonymous callback
    
    function Greeting(callback) {
        console.log("inside Greeting! About to call callback.");
        callback(); // Actually call the callback function.
        console.log("Finished calling callback");
    }
    
    // Step 2: Call that function with the anonymous callback
    
    Greeting(function() { console.log("This is the anonymous function."); });
    

    该代码的输出是:

    inside Greeting! About to call callback.
    This is the anonymous function.
    Finished calling callback