Is there any considerations to determine which is better practice for creating an object with private members?
var object = new function () {
var private = "private variable";
return {
method : function () {
..dosomething with private;
}
}
}
VS
var object = function () {
...
}();
Basically what is the difference between using NEW here, and just invoking the function immediately after we define it?
The
newoperator 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
newoperator is to create an object (thethisvalue 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.