使用jquery何时将函数分配给变量

所以我一直在搞弄一些Jquery Ajax的Promise / Deffers等…,而且我遇到了一些我不完全理解的东西,与Jquery Ajax并不严格相关.

我总是这样声明和调用函数:

function foo1() { //sets function
    alert('foo1');
}

foo1(); //calls function

但是,似乎我看到的代码越来越多,很多人都在声明如下函数,我只是复制并粘贴了一个示例,所以我不会错过任何东西:

var promise = $.ajax({
    url: "/myServerScript"
});

promise.done(myStopAnimationFunction);

我了解上述内容,仅举一个例子.

问题是,将函数分配给变量是否更好?优点/缺点是什么?在什么情况下使用这种方式?
这段代码在什么时候调用了实际函数.是否

    promise.done(myStopAnimationFunction);

调用ajax函数,然后调用回调,或者仅调用回调?

谢谢

解决方法:

在您的示例中,您正在将promise变量分配给$.ajax返回的值(这是一个jqXHR对象)

var promise = $.ajax({
    url: "/myServerScript"
});

然后您会说,一旦完成,您就想要调用myStopAnimationFunction.由于$.ajax默认情况下是异步的,因此浏览器将跳过此操作,仅在请求完成后才调用myStopAnimationFunction.

promise.done(myStopAnimationFunction);

现在,使用myStopAnimationFunction;您总是可以执行以下操作:

promise.done(function(){
    $('.loader').hide();
});

但是,如果您有经常使用的代码,请将其放在函数中,这样就无需重复自己(请参见DRY)-但是,这与jQuery无关.

您的示例与执行操作完全相同:

$.ajax({
    url: "/myServerScript"
}).done(function(){
    $('.loader').hide();
});
上一篇:PHP-如何全局使用vbulletin变量?


下一篇:首页> C#>如何找到一个变量赋值?