En ce moment, ce codeDans AS3, comment définir un objet passé en paramètre de fonction à null?
var gridArray:Array = [[],[],[],[],[],[]];
gridArray[0][0] = new gridProperties;
//gridProperties has gridX and gridY i.e. gridArray[0][0].gridX
function clearGridSquare(gridSquare:gridProperties):void
{
gridSquare = null;
}
function test():void
{
clearGridSquare(gridArray[0][0]);
trace (gridArray[0][0]);
}
produit
[object gridProperties]
au lieu de null. Je comprends que depuis un objet est une référence, même si techniquement il est passé comme une valeur à la fonction, il agit comme il est passé comme référence. De cette façon, je peux modifier dis, les propriétés gridX ou gridY de l'objet original à partir de la fonction (gridSquare.gridX = 1), mais je ne peux pas réellement rendre l'objet lui-même nul. J'ai trouvé que je peux le faire nulle si je le fais dans la fonction à la place:
gridArray[gridSquare.gridY][gridSquare.gridX] = null;
mais qui semble comme je sens vraiment mauvais et rond-point de le faire. Y a-t-il une solution plus élégante?
Alternativement, vous pouvez stocker les valeurs i et j dans les gridProperties objet afin que clearGridSquare, vous pouvez appeler: gridArray [gridSquare.i] [gridSquare.j] = null; – thehiatus