Bonjour à tous, existe-t-il un moyen de définir localement une variable dans une fonction et de la passer ensuite à une autre fonction ? Je veux dire qu'il est possible de passer une valeur locale d'une fonction à une autre. Quelqu'un peut-il me suggérer la solution ? Merci d'avance
Réponses
Trop de publicités?C'est aussi simple que ça ou tu voulais dire autre chose :
private function function1():void
{
var localVariable:String = "this is local variable of function1()";
function2(localVariable);
}
private function function2(string:String):void
{
trace(string);
}
function1();
ou utiliser une variable globale comme stockage temporaire :
private var globalVariable:String = "";
private function function1():void
{
var localVariable:String = "this is local variable of function1()";
globalVariable = localVariable;
}
private function function2():void
{
trace(globalVariable);
}
function1();
function2();
Zdmytriv a raison.
Cependant, vous pouvez aussi créer des variables par défaut, comme ceci :
(Modification du code de zdmytriv)
private function function1():void
{
var localVariable:String = "this is local variable of function1()";
function2(localVariable);
function2(); //You don't have to enter a default argument
}
private function function2(string:String = "something else"):void
{
trace(string);
}
Ce serait une trace :
this is local variable of function1()
something else
Un peu hors sujet, mais bon à savoir.
Dans Flex, les primitives sont transmises par valeur, tandis que les objets complexes sont transmis par référence. Vous pouvez utiliser cette méthode pour transmettre des objets sans avoir à définir la portée d'une variable en dehors des fonctions elles-mêmes. Par exemple :
private function function1():void {
{
var localVar:Object = {value:"test"};
trace(localVar.value);
function2(localVar);
trace(localVar.value);
}
private function function2(obj:Object):void
{
obj.value = "new value";
}
Ce serait une trace :
test
new value
Ce qui reflète le fait que la fonction2 reçoit le paramètre "obj" par référence, comme un pointeur vers l'objet original "localVar". Lorsqu'elle définit le champ .value, cette modification est répercutée dans la fonction1.
J'ai juste pensé que je devais le signaler.