Desculpe pela pergunta genérica. Eu procurei por todo o lado e encontrei tantos tópicos semelhantes a este, mas nenhum que responda à minha pergunta específica - talvez porque o termo que estou procurando nem sequer exista.
Um amigo meu está aprendendo programação, especificamente JavaScript, e me perguntou por que isso não estava funcionando:
var a = "Hello World";
a.replace("Hello", "Goodbye");
console.log(a) // Logs "Hello World"
O motivo é replace
que não modifica a
, pois as seqüências são imutáveis no JavaSript. Como ele retorna uma string, você precisa fazer algo como ...
var a = "Hello World";
a = a.replace("Hello", "Goodbye");
console.log(a); // Logs "Goodbye World"
No entanto, a alternativa é uma função como a do JavaScript reverse()
, pois modifica o que é chamado. Por exemplo:
var fruits = ["Apples", "Oranges", "Bananas"];
fruits.reverse();
console.log(fruits) // ["Bananas", "Oranges", "Apples"]
Quando meu amigo me perguntou por que o dele replace
não estava funcionando, percebi que estava procurando uma palavra que não sabia (até onde sei) ...
"Você precisa definir a string como" string dot replace ", porque a função de substituição é ________."
Você não precisa definir uma matriz igual a "array dot reverse", porque reverse é ________. "
Estou familiarizado com as funções de protótipo , embora não acredite que essa seja a palavra que estou procurando. Alguém pode me ajudar a preencher esses espaços em branco?
You don't need to set an array equal to "array dot reverse", because reverse is a mutator function
. Eu acho que eu já ouvi essa terminologia para se referir a funções que "mutação" a instância que lhes chama. Mas você provavelmente deve verificar isso em outro lugar.