JavaScript singleton with methods and properties
A singleton is an object which is the only instance of its type. Therefore, it makes most sense to define all non-function properties and methods directly on that singleton:

var singleton = {
    prop1: ...,
    prop2: ...,
    method1: function () { ... },
    method2: function () { ... }
};


Extending the singleton is easy:

singleton.prop3 = ...;
singleton.method3 = ...;