Я японец и плохо знаю английский, извините.
Это очень простой код vue.
<template>
<div id="app">
<button @click.once="changeObj">
Click
</button>
</div>
</template>
<script>
export default {
data () {
return {
someObj: {
someStrItem: 'str'
}
}
},
computed: {
getObj () {
return this.someObj
}
},
methods: {
changeObj () {
const temp = this.getObj
console.log(temp) // → { someStrItem: 'newStr' }
this.someObj.someStrItem = 'newStr'
}
}
}
</script>
Что странно внутри функции changeObj.
Я ожидал, что результат console.log (temp) будет
{ someStrItem: 'str' }
, потому что
this.someObj.someStrItem = 'newStr'
Я делаю это после
const temp = this.getObj
console.log(temp)
но в результате получается
{ someStrItem: 'newStr' }
Я не знаю, почему это происходит.
Ну, на самом деле я обычно так не делаю.
И я могуожидайте, что это произойдет, потому что я храню геттер, который возвращает объект в переменной.
Но я не знаю причину.
Почему это происходит?