jQuery 中的 deferred.resolveWith() 在哪里定义?

Where is deferred.resolveWith() defined in jQuery?

所以,我正在查看 jQuery 源代码,因为我试图理解 jQuery ajax 成功回调中 "this" 的含义(由于 deferred.resolveWith() 方法,我发现它有效。

我现在感到困惑的是,在查看代码时,我没有看到调用的 resolveWith() 方法的实际 定义

源代码在这里,但我做了一个简单的文本搜索来找到单词 "resolveWith"(在下面列出)的所有实例,它们似乎都是对一个根本不存在的方法的调用不存在:https://code.jquery.com/jquery-2.2.1.js

这是如何工作的,换句话说,"resolveWith"方法在哪里定义的?

"resolveWith"

的实例
function resolveFunc( i ) {
    return function( value ) {
        args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
        if ( !( --count  )) {
                deferred.resolveWith( deferred, args );
            }
        };

if ( !count ) {
            deferred.resolveWith( deferred, args );
        }

    } else if ( deferred !== firstParam ) {
        deferred.resolveWith( deferred, length ? [ firstParam ] : [] );
    }

function resolve() {
        if ( !( --count ) ) {
            defer.resolveWith( elements, [ elements ] );
        }
    }

// The ajax method's usage
if ( isSuccess ) {
    deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
} else {
    deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
}

定义在line 87 of deferred.js:

deferred[ tuple[ 0 ] + "With" ] = list.fireWith;

连同 rejectWithnotifyWithfireWith 函数是 Callbacks 实例的特权方法(参见 its docs here)。

通用性很好,但您可以过度使用 :-)