猿问

请问怎么更好地理解JavaScript中的回调函数

更好地理解JavaScript中的回调函数

我理解将一个函数作为回调传递给另一个函数,并让它执行,但我并不理解最佳的实现。我正在寻找一个非常基本的例子,如下所示:

var myCallBackExample = {
    myFirstFunction : function( param1, param2, callback ) {
        // Do something with param1 and param2.
        if ( arguments.length == 3 ) {
            // Execute callback function.
            // What is the "best" way to do this?
        }
    },
    mySecondFunction : function() {
        myFirstFunction( false, true, function() {
            // When this anonymous function is called, execute it.
        });
    }};

在myFirstFunction中,如果我确实返回了新的回调(),那么它就能工作并执行匿名函数,但这似乎不是正确的方法。


眼眸繁星
浏览 351回答 3
3回答

万千封印

您应该检查回调是否存在,并且是一个可执行函数:if (callback && typeof(callback) === "function") {     // execute the callback, passing parameters as necessary     callback();}许多库(jQuery、dojo等)对异步函数使用类似的模式,对于所有异步函数使用node.js(NodeJS通常通过error和data回拨电话)。查看他们的源代码会有帮助!

MYYA

执行一个函数有三种主要的可能性:var callback = function(x, y) {     // "this" may be different depending how you call the function     alert(this);};回调(参数1,参数2);调用(一些_Object,参数_1,参数_2);CARBACK.Apply(SomeObject,[参数1,参数2]);您选择的方法取决于:将参数存储在Array中或作为不同的变量存储。您希望在某个对象的上下文中调用该函数。在这种情况下,在回调中使用“this”关键字将引用调用()或application()中作为参数传递的对象。如果不希望传递对象上下文,请使用空或未定义。在后一种情况下,全局对象将用于“this”。博士功能.呼叫, 功能应用
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答