Autant que je sache, il n'est pas possible de modifier un objet de la même manière:
String.prototype.append = function(val){
this = this + val;
}
4 Réponses :
the string Les primitives sont immuables, ils ne peuvent pas être changés après leur sont créés.
ce qui signifie que les caractères d'entre eux peuvent ne pas être modifiés et que des opérations sur les chaînes créent de nouvelles chaînes. P>
Peut-être que vous souhaitez mettre en œuvre un élément de chaîne? p> < Pré> xxx pré> p>
Non, je recherche des prototypes et je vérifie certaines choses sur l'héritage et les fermetures de JS. Des trucs intéressants et j'ai eu un sentiment vague qu'une ficelle était vraiment immuable. Cela semblait juste un peu illogique que Array.pop pourrait effectivement se modifier (ou le hachage interne des valeurs), mais la chaîne ne pouvait pas se modifier. String Eing L'une des cinq primitives de JS explique beaucoup!
Il semble assez inintervérable d'avoir une API où la variable SB1 n'est pas une instance d'un StressBuilder après Var SB1 = New StringBuilder () Code>. Pourquoi ne pas attribuer {append: ...} to stringbuilder.pototype et modifier var valeurs = [] code> à this.values = [] code>? Est-ce juste pour éviter les valeurs de préfixation dans APPEND / TOSTRING avec Ceci. CODE> ou y a-t-il quelque chose que je ne considère pas ici?
Les chaînes sont immuables; Ce que vous demandez, c'est comme dire: "Pourquoi ne puis-je pas faire:
Number.prototype.accumulate = function (x) {
this = this + x;
};
tandis que les chaînes sont immuables, essayant d'assigner n'importe quoi em> à dans code> dans tout cours em> lancera une erreur. p>
Je cherche la même chose ... Tout d'abord, bien sûr, vous ne pouvez pas simplement faire cela + = x, "Ceci" est un objet, vous ne pouvez pas utiliser l'opérateur + sur les objets.
Il existe des méthodes «derrière la scène» qui sont appelées - par exemple p> appellent réellement p> alors quoi Vous devez trouver est une valeur pertinente qui fait le contraire - quelque chose comme ça.sevalue (). Sauf qu'il n'y en a pas. Il en va de même pour le nombre. P> Même les méthodes intégrées sont liées par ce p> sur certains autres objets que vous pouvez; Par exemple, à une date: p> C'est ennuyeux, mais là, vous allez p> p>