Overview
Excerpt |
---|
Adds a new accessor (getter/setter) or data (value) property to any object |
...
, setting it's enumerable, configurable and read-only flags as desired... |
Availability
...
...
try {
oObj.uAddProperty(nMask,sKey,vVal_fGet,fSet);
} catch(e) {
// likely a TypeError if an existing non-configurable property of the same sKey is defined
}
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
playerData.primaryTarget = null;
for (var p=0; p<playerData.length; p++) {
// Add a hidden and read-only .id property that returns the player number
playerData[p].uAddProperty(
DATA_READONLY_HIDDEN,
"id",
p
);
// Add a read-only .isAlly property that returns true if this player is an ally
// Note: No setter function (fSet) means read only
playerData[p].uAddProperty(
ACCESSOR_NORMAL,
"isAlly",
allianceExistsBetween.uCurry(me,p)
);
// Add a read-only .isMe property that returns true if this player is me
playerData[p].uAddProperty(
ACCESSOR_NORMAL,
"isMe",
function() {
return (this.id==me);
}
);
// Add a read-only .isEnemy property that returns true if this player is an enemy
playerData[p].uAddProperty(
ACCESSOR_NORMAL,
"isEnemy",
function() {
return (!(this.isAlly || this.isMe));
}
);
// Add a read-write .isPrimaryTarget boolean property
playerData[p].uAddProperty(
ACCESSOR_NORMAL,
"isPrimaryTarget",
function() {
return (playerData.primaryTarget == this.id);
},
function(bool) {
playerData.primaryTarget = (!!bool) ? this.id : null;
return (!!bool);
}
);
}
See also
...