Désolé pour la question générique. J'ai cherché partout et trouvé tellement de fils similaires à celui-ci, mais pas un qui répond à ma question spécifique - peut-être parce que le terme que je recherche n'existe même pas.
Un de mes amis apprend la programmation, JavaScript en particulier, et il m'a demandé pourquoi cela ne fonctionnait pas:
var a = "Hello World";
a.replace("Hello", "Goodbye");
console.log(a) // Logs "Hello World"
La raison en est que replace
ne modifie pas a
, car les chaînes sont immuables dans JavaSript. Étant donné qu'il renvoie une chaîne, vous devez faire quelque chose comme ...
var a = "Hello World";
a = a.replace("Hello", "Goodbye");
console.log(a); // Logs "Goodbye World"
Cependant, l'alternative est une fonction comme JavaScript reverse()
, car elle modifie tout ce qui l'appelle. Par exemple:
var fruits = ["Apples", "Oranges", "Bananas"];
fruits.reverse();
console.log(fruits) // ["Bananas", "Oranges", "Apples"]
Quand mon ami m'a demandé pourquoi replace
il ne fonctionnait pas, j'ai réalisé que je cherchais un mot que je ne connaissais pas (pour autant que je sache) ...
"Vous devez définir la chaîne sur" string dot replace ", car la fonction de remplacement est ________."
Vous n'avez pas besoin de définir un tableau égal à "tableau dot reverse", car reverse est ________. "
Je connais bien les fonctions prototypes mais je ne crois pas que ce soit le mot que je recherche. Quelqu'un peut-il m'aider à remplir ces blancs?
You don't need to set an array equal to "array dot reverse", because reverse is a mutator function
. Je pense que j'ai entendu cette terminologie pour désigner les fonctions qui "mutent" l'instance qui les appelle. Mais vous devriez probablement vérifier cela ailleurs.