Referencing Other Properties In {} Object Creation
Possible Duplicate: Self-references in object literal declarations How do I do the following: var object = { alpha: 'one', beta: **alpha's value** } without splitting t
Solution 1:
You can't, as noted. The closest equivalent is:
varobject = new (function()
{
this.alpha = 'one';
this.beta = this.alpha;
})();
This uses a singleton instance created from an anonymous function. You can also declare private fields with var
.
Solution 2:
You can't, object literal syntax just doesn't support this, you'll have to create a variable first then use it for both, like this:
varvalue = 'one';
varobject = {
alpha: value,
beta: value
};
Or...something entirely different, but you can't reference alpha
when doing beta
, because neither property has been created yet, not until the object statement runs as a whole is either accessible.
Solution 3:
You cannot do that with {}
object creation.
Solution 4:
Another idea for a way to create that object, without cluttering the scope with any new variables:
var lit = function(shared) {
return {
alpha: shared.v1,
beta: shared.v2,
gamma: "three",
delta: shared.v1
};
}(
{
v1: "one",
v2: "two",
}
);
One of those statements you're not sure how to indent....
Post a Comment for "Referencing Other Properties In {} Object Creation"