Je viens de découvrir la façon dont les objets durs sont passés par référence en Javascript, par exemple:Faire objet passe pas par référence
for(var layer = 0; layer < hudLayers['layers'].length; layer++){
// Store the to-be-calculated values in this object
var tempValues = hudLayers['layers'][layer];
tempValues['name'] = 'test';
}
Cela va changer la valeur tempValues et hudLayers. (Cela semble un peu évident, mais un article sans un peu de code semble tellement nu.)
Y at-il un moyen rapide de contourner le problème?
Vous souhaitez attribuer une valeur à 'tempValues' et ne l'ont pas reflété dans le' hudLayers'? Pourquoi voudrai-tu ceci? –
Vous voulez vraiment savoir? :) 'hudLayers' contient plusieurs variables de largeurs et de hauteurs d'image. C'est un HUD, il doit donc être dessiné plusieurs fois par seconde. Ce qui est dans 'hudLayers' est en fait le « plan »(base de la largeur de cette image sur la valeur de cette variable, ...) Si j'écris simplement que revenir à plan' hudLayers'the est parti et l'image à l'écran restera toujours le même. – skerit