I would recommend you the first one, that convention is widely used in JavaScript, even in the core language by itself, the ECMA Specification uses it, e.g. 

Array.prototype.toLocaleString
Object.prototype.hasOwnProperty
Object.prototype.propertyIsEnumerable
// etc...


All identifiers are named with camelCase, and only constructor functions are named with the first letter as capital (PascalCase).

jQuery plugin naming convention (for the function)
The Magento compare list feature only works, when the log_* tables are being filled. If they are not, the compare list is global, which means, whenever a customer adds to the list, every other customer can see that recently added item. I disabled (and cant enable) this feature by putting this in my local.xml:

&lt;controller_action_predispatch&gt; 
    &lt;observers&gt;&lt;log&gt;&lt;type&gt;disabled&lt;/type&gt;&lt;/log&gt;&lt;/observers&gt; 
&lt;/controller_action_predispatch&gt; 
&lt;controller_action_postdispatch&gt; 
    &lt;observers&gt;&lt;log&gt;&lt;type&gt;disabled&lt;/type&gt;&lt;/log&gt;&lt;/observers&gt; 
&lt;/controller_action_postdispatch&gt; 


Removing this makes the compare list work right away. The question is, is there a workaround for that? Is there a way to make the compare list work and not fill the log_* tables?

Thanks!
