En vue, pourquoi la valeur sortie par console.log(a) est-elle affectée par les instructions après console.log(a), et comment éviter cet effet
Logiquement parlant, les valeurs sorties par console.log deux fois devraient être différentes. Pourquoi sont-elles les mêmes ? Seules les deux valeurs de sortie n'interféreront pas entre elles
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
<script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<p id="app">
<p @click="add">{{a}}</p>
</p>
<script>
new Vue({
el: '#app',
data: {
a:[]
},
methods:{
add:function(){
console.log(this.a);
this.a.push(1);
console.log(this.a);
}
}
})
</script>
</body>
</html>"
![图片描述][1]
Il s'agit d'une fonctionnalité du contrôle de débogage. Ce que console.log génère n'est pas un instantané de l'objet. Vous pouvez l'essayer sur la console
Je crois comprendre qu'il s'agit d'un tableau ; tout comme un objet, il accède à l'adresse mémoire pour l'afficher.
Parce que j'utilise souvent Chrome au travail
console.log
Lorsque vous cliquez sur un objet dans le débogueur, le contenu à l'intérieur est fondamentalement le même, mais en surface, on peut voir que les résultats avant et après sont différentsCependant, si vous cassez le ; pointez et déboguez, vous constaterez cela avant le changement, et c'est différent après cela.
Photo ci-dessus
Ce n'est pas pareil. Je viens de copier votre code directement et c'est toujours le même après l'avoir exécuté~
Après l'avoir ajouté, le a après l'ajout est évidemment 1 de plus
Voici une solution légère :
console.log(JSON.stringify(data, null, 2))
C'est tout.