Why jquery code does not use prototype for methods?
<p>Why jquery code (<a href="https://github.com/jquery/jquery/blob/master/src/callbacks.js" rel="nofollow">https://github.com/jquery/jquery/blob/master/src/callbacks.js</a>) does not use prototype for methods?  </p>

<p>I am asking this because experts (http://stackoverflow.com/questions/4736910/javascript-when-to-use-prototypes) suggests to use prototype for methods for performance reasons( As functions only gets created once). </p>

<p>Code snippet from jquery code,</p>

<pre><code>self = {
            // Add a callback or a collection of callbacks to the list
            add: function() {
                if ( list ) {
                    // First, we save the current length
                    var start = list.length;
                    (function add( args ) {
                        jQuery.each( args, function( _, arg ) {
                            var type = jQuery.type( arg );
                            if ( type === "function" ) {
                                if ( !options.unique || !self.has( arg ) ) {
                                    list.push( arg );
                                }
                            } else if ( arg &amp;&amp; arg.length &amp;&amp; type !== "string" ) {
                                // Inspect recursively
                                add( arg );
                            }
                        });
                    })( arguments );
                    // Do we need to add the callbacks to the
                    // current firing batch?
                    if ( firing ) {
                        firingLength = list.length;
                    // With memory, if we're not firing then
                    // we should call right away
                    } else if ( memory ) {
                        firingStart = start;
                        fire( memory );
                    }
                }
                return this;
            },
            // Remove a callback from the list
            remove: function() {
                if ( list ) {
                    jQuery.each( arguments, function( _, arg ) {
                        var index;
                        while( ( index = jQuery.inArray( arg, list, index ) ) &gt; -1 ) {
                            list.splice( index, 1 );
                            // Handle firing indexes
                            if ( firing ) {
                                if ( index &lt;= firingLength ) {
                                    firingLength--;
                                }
                                if ( index &lt;= firingIndex ) {
                                    firingIndex--;
                                }
                            }
                        }
                    });
                }
                return this;
            },
</code></pre>

<p>My question is why all methods are not part of a separate object which becomes prototype for self object?</p>
