Using the name of a variable and then defining a function for the variable
<p>I've seen this hovering around some javascript for a while now and was wondering what it meant.</p>

<p>In this code:</p>

<pre><code>var topics = {};

jQuery.Topic = function( id ) {

    var callbacks,
        topic = id &amp;&amp; topics[ id ];
    if ( !topic ) {
        callbacks = jQuery.Callbacks();
        topic = {
            publish: callbacks.fire,
            subscribe: callbacks.add,
            unsubscribe: callbacks.remove
        };
        if ( id ) {
            topics[ id ] = topic;
        }
    }
    return topic;
};
</code></pre>

<p>why does the variable topic have <code>id &amp;&amp;</code> before it?</p>
