创建我自己的回调

Int*_*man 3 javascript jquery

我有一个页面包含一些jQuery,以及一个单独的非jQuery函数.

目前我的函数运行在$(document).ready上,但是我想在函数完成后立即调用jQuery函数.我可以将我的函数作为回调传递给任何jQuery函数,但是如何设置反过来呢?

所以我理想地想知道如何创建一个函数foo来为我处理这个问题:

$(document).ready(function() {
  foo(myfunction(), $(bar).something);
}
Run Code Online (Sandbox Code Playgroud)

或者如何扩展现有函数来处理回调.谢谢.

tva*_*son 6

定义您的函数以接受(可选)回调,然后在回调存在时使用javascript call()apply()方法.要保留上下文,请将当前值this(或所需的任何上下文)传递给apply方法.Call()和apply()根据参数的传递方式而有所不同.

function myfunction(callback) {
    // do stuff
    if (callback) 
        callback.apply(this);
}
Run Code Online (Sandbox Code Playgroud)