Je suis relativement nouveau à Javascript et j'essaye de créer un moteur physique très simple pour un projet sur lequel je travaille. Pour ce faire, j'ai créé ce que je comprends être l'équivalent JS d'une classe que je peux créer de nouvelles copies de chaque objet que je veux. Le problème est que je veux être en mesure de mettre à jour une valeur telle que la position x et d'avoir aussi mettre à jour des choses telles que la position x central (x centre de l'objet sur l'écran). Je sais que cela est possible en utilisant un objet littéral et le getter, mais je veux être capable de créer de nouveaux objets en temps réel en fonction de ce qui est sur l'écran et je ne pouvais pas comprendre comment utiliser pour faire ce travail. Voici l'idée générale de ce que je suis en train de faire:Mise à jour des propriétés de JS "class" en fonction d'autres propriétés?
var object = function (xPos, yPos, width, height) {
this.xPos = xPos;
this.yPos = yPos;
function getXMid (xP) { return xP + width/2; }
this.xMid = getXMid (this.xPos);
function getYMid (yP) { return yP + height/2; }
this.yMid = getYMid (this.yPos);
}
var ball = new object (10, 20, 50, 50);
ball.xPos = 50;
console.log (ball.xMid); // want this to output 75 instead of 45
Merci cela semble fonctionner! Je suis un peu confus sur la façon dont fonctionne exactement le setter. D'où vient le paramètre v que vous utilisez? –
Le seul argument obtenu par le setter est la valeur du set, donc 'v' est ce que vous avez réglé' this.xPos = *** ' – adeneo