Javascript new object (function ) vs inline invocation
-
24-09-2019 - |
Question
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?
Solution
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.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow