recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment changer un objet avant l’appel d’une fonction ? Est-ce vraiment possible ?

<p>J'ai un problème js très étrange. J'ai un composant Vue (mais je ne pense pas que Vue soit importante ici). Il possède un attribut de données appelé <code>current_query</code>. Dans la méthode qui répond à l'événement, je souhaite modifier la propriété. Utilisez Lodash ici. Il y a un comportement très étrange. Supposons que <code>this.current_query</code> soit initialement égal à <code>{ test : 500 }</code>. Supposons que le paramètre <code>'field'</code> soit <code>'test'</code>. En le "désactivant" de <code>current_query</code>, je vais en fait effacer current_query lui-même. très bien. Le problème est que, uniquement lors de l'utilisation de unset, si j'enregistre current_query avant d'appeler unset, j'obtiens un objet vide. Comment se peut-il? </p> <pre class="brush:php;toolbar:false;">on_applied_option_click(field){ console.log(this.current_query); // donne { test : 500 } (OK) }, // Cliquez pour terminer on_applied_option_click(champ){ console.log(this.current_query); // Ce n'est qu'en utilisant _.unset qu'un objet vide sera donné (??) _.unset(this.current_query, champ); console.log(this.current_query); // Donnera également un objet vide (OK) }, // Cliquez pour terminer</pre> <p>J'ai constaté que si j'utilise <code>_.omit</code>, tout fonctionne correctement : </p> <pre class="brush:php;toolbar:false;">on_applied_option_click(field){ console.log(this.current_query); // donne { test : 500 } (OK) this.current_query = _.omit(this.current_query, champ); console.log(this.current_query); // Donne un objet vide, ce qui est OK pour le moment }, // Cliquez pour terminer</pre> <p>Pourquoi ? La seule chose que je peux dire, c'est que _.unset modifie l'objet tandis que _.omit crée de nouveaux objets. Cependant, je ne pense pas qu'il soit possible pour _.unset de modifier l'objet avant de l'appeler (???). Je n'ai jamais rien vu de pareil. Quelqu'un a-t-il une bonne explication à ce comportement étrange ? </p>
P粉539055526P粉539055526459 Il y a quelques jours429

répondre à tous(1)je répondrai

  • P粉301523298

    P粉3015232982023-08-31 10:43:44

    N'utilisez pas console.log(this.current_query),尝试使用console.log(JSON.stringify(this.current_query))。这样可以可靠地记录this.current_queryl'état au moment de l'enregistrement, plutôt qu'un éventuel état ultérieur.

    Cela devrait résoudre le problème de confusion.

    répondre
    0
  • Annulerrépondre