jQuery deferred object needn't resolve method to invoke done method
<p>Today I debug the jquery deferred object relative code and found the done method will invoke immediately.</p>

<pre><code>derferredObj.done(function(){alert(0)}); //Get the 0 immediately.
</code></pre>

<p>And I debug the code found the jquery source code (done method) as below:</p>

<pre><code> if (!cancelled) {
                    var args = arguments,
                    i,
                    length,
                    elem,
                    type,
                    _fired;
                     if (fired) {
                        _fired = fired;
                        fired = 0;

                    }
                    for (i = 0, length = args.length; i &lt; length; i++) {
                        elem = args[i];
                        type = jQuery.type(elem);
                         if (type === "array") {
                            deferred.done.apply(deferred, elem);

                        }
                        else if (type === "function") {
                            callbacks.push(elem);

                        }
                    }
                    if (_fired) {
                        deferred.resolveWith(_fired[0], _fired[1]);

                    }
                }
                return this;

            }
</code></pre>

<p>And My question is when will jquery deferred object will invoke the done call back methods without resolve invoke and invoke the "deferred.resolveWith(_fired[0], _fired[1]);" statement as the jquery source code in done method.</p>
