I'm trying to understand JS, doing it with documentation.
Variable inside/outside a function is quite difficult.
I would like to do a module to execute a code written in multiple areas of my code to finally write it only once:)
// GLOBAL VARIABLES
let adherent_type, profil1;
//SOMEWHERE I ASSIGN A VALUE IN ADHERENT_TYPE VARIABLE
adherent_type = "famille";
//THE FUNCTION IN THE MODULE I CREATED IN NODEJS
function profil(adherent_type,profil1) {
if (adherent_type === "famille") {
profil1 = "Particulier";
}
return profil1;
}
// CALL THE FUNCTION
carte_adherent.profil(adherent_type,profil1);
The result: profil1 = undefined
Variable adherent_type is ok, my issue is on profil1 .
It is not working when I don't put "profil1" in the () of the function too.
Thank you very much for your help.
When you pass a variable to the function, the function creates a copy of it. So when you change the profil1
inside the function the value of the let profil1
is not changed (only the copy is changed).
What you can do is to return the value of profil
from the function, and then assign the result to the profil1
variable.
function profil(adherent_type) {
let newProfil;
if (adherent_type === "famille") {
newProfil = "Particulier";
}
return newProfil;
}
// CALL THE FUNCTION
profil1 = carte_adherent.profil(adherent_type);
The option with globalThis
probably also will work, in a case you want to make the profil1
variable global:
function profil(adherent_type) {
if (adherent_type === "famille") {
globalThis.profil1 = "Particulier";
}
}
// CALL THE FUNCTION
carte_adherent.profil(adherent_type);
console.log(globalThis.profil1);
you don't call a function this way in javascript
carte_adherent.profil(adherent_type,profil1);
instead this
profil(adherent_type,profil1);
now to see your result console it to the machine like this
console.log(profil(adherent_type,profil1));
now try it an see the result but first make the changes above
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.