Is there any considerations to determine which is better practice for creating an object with private members?
var object = new function () {
var private
This link provides statistics which also confirms that inline invocation pattern is better.
Please note that the measurement is in operations per second
which the higher the better
If you're using functions as event handlers you can get memory leaks. Have a look at some of the articles
The new
operator causes the function to be invoked like a Constructor Function.
I've seen that pattern before, but I don't see any benefits of using it.
The purpose of the new
operator is to create an object (the this
value inside the constructor), setting the right [[Prototype]]
internal property, to build the prototype chain and implement inheritance (you can see the details in the [[Construct]] operation).
I would recommend you to stay with the inline invocation pattern.