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

标签 javascript jquery function variables

所以我一直在处理一些 Jquery Ajax promises/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 .因为$.ajaxasync默认情况下,浏览器将跳过它,只调用你的 myStopAnimationFunction当请求完成时。

promise.done(myStopAnimationFunction);

现在,用你的 myStopAnimationFunction ;您可以随时执行以下操作:

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

但是如果你有你会经常使用的代码,把它放在一个函数中这样你就不需要重复自己(参见 DRY )——然而这与 jQuery 无关。

你的例子和做的完全一样:

$.ajax({
    url: "/myServerScript"
}).done(function(){
    $('.loader').hide();
});

关于javascript - 何时使用 jquery 将函数分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18243887/

相关文章:

javascript - 如何将散列存储到表单输入中?

javascript - 如何在控制台中 console.log 一个大的彩色文本

javascript - 获取 iframe 中悬停元素的 css 值

javascript - 如何确定输入的模式是 `Int,VarChar,Date,Time...` 等

javascript - 如何从对象函数javascript返回多个值?

c++ - 必须有返回值,函数重载

javascript - Mongo 和 Node js 的查询返回不重复、不同

javascript - setTimeout 作为 react setState 的回调?

javascript - jQuery 悬停() : mouseout does not fire when using overflow:auto (with scrollbars)

c++ - 将模板函数转换为非模板类​​?