I'm using class members to hold constants. E.g.:
function Foo() {
}
Foo.CONSTANT1 = 1;
Foo.CONSTANT2 = 2;
This works fine, except that it seems a bit unorganized, with all the code that is specific to Foo
laying around in global scope. So I thought about moving the constant declaration to inside the Foo()
declaration, but then wouldn't that code execute everytime Foo
is constructed?
I'm coming from Java where everything is enclosed in a class body, so I'm thinking JavaScript might have something similar to that or some work around that mimics it.
All you're doing in your code is adding a property named CONSTANT
with the value 1
to the Function object named Foo, then overwriting it immediately with the value 2
.
I'm not too familiar with other languages, but I don't believe javascript is able to do what you seem to be attempting.
None of the properties you're adding to Foo
will ever execute. They're just stored in that namespace.
Maybe you wanted to prototype some property onto Foo
?
function Foo() {
}
Foo.prototype.CONSTANT1 = 1;
Foo.prototype.CONSTANT2 = 2;
Not quite what you're after though.