I use PHPStorm for all my JavaScript needs. Dang it's good. Anyway, I've been working on a secret JS project I'll hopefully share one day, and one thing I've been working on is my JS file template. There's not a lot to it, but this is what mine looks like:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | /** * Author: thegoldenmule * Date: ${DATE} */ (function(global) { "use strict"; var ${NAME} = function() { var scope = this; return scope; }; ${NAME}.prototype = { constructor : ${NAME} }; // export global.${NAME} = ${NAME}; })(this); |
Just a couple things: I like wrapping my whole definition in a closure. This is both a safeguard against my own accidental globals (yes, even thegoldenmule accidentally creates a global), and a safe space to stick "static" functions and objects, or even whole internal object definitions.
Inside the constructor function, I use the common pattern of defining a reference that points to this and returning that at the end.
The prototype is straightforward, as is the exports at the end. A cool caveat is that it's really easy to then export for Node.