vue2の挙動がわかりません。

発生している問題

vue2でv-checkboxのchangeイベントを使ってfn関数を呼び出しています。
props.item = { a: 100 }
がchangeイベントによってfn関数に渡されるとした時、fn関数の中で先に
Object.assign(obj, { a: 0 });
が実行されて、その手前で書いているはずのconsole.logで{ a: 0 }となっています。
この仕様は何に由来するのか検討がつかずに困っています。
なにか思いあたる方はコメント、ご指摘いただけると幸いです。

html

1 <v-checkbox2 @change="fn(props.item)"3 ></v-checkbox>

js

1methods: {2 fn(obj) {3 console.log(obj); // => obj: { a: 0 }4 Object.assign(obj, { a: 0 });5 }

試したこと

1
Object.assign(obj, { a: 0 });をコメントアウトすると{ a: 100 }と出力される。

コメントを投稿

0 コメント